如何使用clang在osx上使用libstdc ++静态链接我的c ++程序?

mil*_*ilo 14 c++ macos clang libstdc++ static-linking

我正在编写c ++程序,我想在Mac OS X 10.6及更高版本上发布它.问题是当我使用clang编译程序并且它与libstdc ++动态链接时,它会导致旧系统出现问题.

-static-stdc++gcc中有一个键但是clang中没有人.如何将我的程序与clang静态链接?

我的主要目标是在Mac OS X 10.9上编译二进制文件,并能够在早期版本上运行它.也许有不同的方式?

谢谢.

Edw*_*ard 14

在Linux下,此命令有效:

clang --std=c++11 -stdlib=libstdc++ loopy.cpp -o loopy -static -lstdc++
Run Code Online (Sandbox Code Playgroud)

loopy我的课程名称当然在哪里.

更新:

Apple似乎强烈反对静态链接,因此建议采用另一种方法.

关于创建向后兼容的OS X软件的答案可能对您有用.

  • 这在Mac OSX上不起作用:`ld:找不到-lcrt0.o`的库 (2认同)
  • 你需要所有库的静态版本,包括`libcrt0.a`.有关详细信息,请参阅[此答案](http://stackoverflow.com/questions/844819/how-to-static-link-on-os-x). (2认同)