システム整合性保護システムがOSXに導入されて以来、rootとしても、ユーザーは変更できません/usr
。したがって、必要なファイルを追加するために/ usr / include/machを変更することは不可能になります。唯一の代替手段は、makefile自体を編集することです。
手元のMakefilecoregrind/Makefile
はに、machファイルは近くに配置する必要があります/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/
(MacOSX10.12.sdkを適切なバージョンのOSXに置き換えます)。
am__append_17
160行目あたりに定義された名前のシンボルがあるはずです(異なるバージョンでは他の場所にある可能性があります)。
次のようになります。
am__append_17 = \
/usr/include/mach/mach_vm.defs \
/usr/include/mach/task.defs \
/usr/include/mach/thread_act.defs \
/usr/include/mach/vm_map.defs
/usr/include
の各インスタンスをに置き換えて/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/
、次のようにします。
am__append_17 = \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/mach/mach_vm.defs \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/mach/task.defs \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/mach/thread_act.defs \
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/mach/vm_map.defs
この後、valgrindは正しくコンパイルされるはずです