【发布时间】:2023-03-27 08:12:01
【问题描述】:
我正在 OSX 10.6.4 (Snow Leopard) 上开发程序,我希望能够在其他英特尔 Mac 上运行编译后的产品,其中一些可能没有安装 XCode。
为了简单起见,我先写了一个Hello World程序。
#include<stdio.h>
int main() {
printf("Hello world!\n");
return 0;
}
如果我编译为
gcc -static prog.c
我收到以下错误:
ld: library not found for -lcrt0.o
我不知道在哪里可以找到这个库。现在,有人提到我不应该在 mac 上静态编译,因为 system 共享库应该随处可用(第三方库可以手动链接)。但是,当我尝试在另一台 Mac 上运行这个 Hello World 程序时,我收到以下错误:
dyld: unknown required load command 0x80000022
Trace/BPT trap
那么,如何在 mac 上编译一个程序以便分发?我没有架构问题,因为我感兴趣的大多数计算机都是 Intel Mac。
【问题讨论】:
-
你不应该静态链接,因为mac上没有静态库。所有系统库仅以共享形式提供。您的问题可能是其他问题。
-
假设这是一个纯 C Unix 可执行文件,而不是一个 GUI 应用程序??
标签: macos gcc compilation static-linking