我正在OSX 10.6.4(Snow Leopard)上開發程序,我希望能夠在其他英特爾Mac上運行編譯後的產品,其中一些可能沒有XCode isntalled。如何編譯在Mac上分發的程序
爲了簡化,我首先寫了一個Hello World程序。
#include<stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
如果我編譯爲
gcc -static prog.c
我得到folllowing錯誤:
ld: library not found for -lcrt0.o
我不知道在哪裏可以找到這個庫。現在,有人提到我不應該在Mac上靜態編譯,因爲共享庫應該在任何地方都可用(第三方庫可以手動鏈接)。然而,當我嘗試在另一臺Mac上運行這個Hello World程序,我得到了如下因素的錯誤:
dyld: unknown required load command 0x80000022
Trace/BPT trap
那麼,你如何編譯在Mac上的程序,以便它可以分配?我沒有體系結構問題,因爲我感興趣的大多數計算機是英特爾Mac。
您不應該靜態鏈接,因爲mac上沒有靜態庫。所有系統庫*僅*可用於共享形式。你的問題可能是別的。 – Sven 2010-09-28 20:53:52
假設這是一個純C的Unix可執行文件,而不是一個GUI應用程序? – JulesLt 2010-09-30 11:23:30