代码之家  ›  专栏  ›  技术社区  ›  highBandWidth

如何编写一个在Mac上分发的程序

  •  0
  • highBandWidth  · 技术社区  · 14 年前

    我正在OSX10.6.4(Snow Leopard)上开发一个程序,我希望能够在其他Intel Mac上运行编译后的产品,其中一些可能没有XCode。

    为了简化,我首先编写了一个helloworld程序。

    #include<stdio.h>
    int main() {
        printf("Hello world!\n");
        return 0;
    }
    

    如果我把它编译成

    gcc -static prog.c
    

    ld: library not found for -lcrt0.o
    

    我不知道在哪里可以找到这个图书馆。现在,有人提到我不应该在macs上静态编译,因为 系统 共享库应该无处不在(第三方库可以手动链接)。但是,当我尝试在另一台mac上运行这个Hello World程序时,出现以下错误:

     dyld: unknown required load command 0x80000022
     Trace/BPT trap
    

    2 回复  |  直到 14 年前
        1
  •  2
  •   Paul R    14 年前

    不要使用 -static . 您的可执行文件在其他10.6.x x86 Mac上运行良好。如果你想在10.6之前的mac上部署,那么你需要使用合适的SDK,除此之外,它应该“正常工作”,不管是否安装了开发人员工具。

        2
  •  1
  •   JulesLt    14 年前

    使用XCode创建可执行文件,使用命令行程序模板(基本Unix可执行文件)可能是值得的,因为它将为您管理许多编译器选项(包括您针对哪个SDK编译/针对哪个版本编译)。

    我猜默认命令行编译将针对当前系统库(10.6.4)进行编译。