4
我在Snow Leopard上使用https://bugs.kde.org/show_bug.cgi?id=205241上的補丁安裝了valgrind。但是,當我使用從C++代碼編譯的二進制文件運行它時,我被告知valgrind「無法執行二進制文件」。我應該用什麼樣的g ++標誌來讓我的程序和valgrind一起工作?在Snow Leopard上編譯一個與valgrind配合使用的二進制文件
我在Snow Leopard上使用https://bugs.kde.org/show_bug.cgi?id=205241上的補丁安裝了valgrind。但是,當我使用從C++代碼編譯的二進制文件運行它時,我被告知valgrind「無法執行二進制文件」。我應該用什麼樣的g ++標誌來讓我的程序和valgrind一起工作?在Snow Leopard上編譯一個與valgrind配合使用的二進制文件
一定要使用-m32選項來生成32位可執行文件。編譯器默認是64位(假設你有一臺64位機器),但valgrind尚未正式支持Mac OS X上的64位可執行文件。可執行文件上的file
命令應報告「Mach-O可執行文件i386」。
謝謝!這正是我正在尋找的。但是,我無法編譯它。我正在使用makefile來完成所有這些工作,並且在添加-m32選項後,我被告知「文件不是必需的體系結構」,用於所有.o文件。 – weicool 2009-10-28 21:19:57
編譯和鏈接都需要-m32;這聽起來像你可能已經添加它僅用於編譯。另外請確保您使用的是所有庫的32位版本。 – mark4o 2009-10-29 06:56:49