我如何使用clang将我的c++程序静态地链接到osx上的libstdc++

How can i link my c++ program statically with libstdc++ on osx using clang?

本文关键字:链接 osx libstdc++ 上的 静态 程序 何使用 clang c++ 我的      更新时间:2023-10-16

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

在gcc中有一个关键字-static-stdc++,但在clang中没有。我如何与clang静态链接我的程序?

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

谢谢。

在Linux下,此命令有效:

clang --std=c++11 -stdlib=libstdc++ loopy.cpp -o loopy -static -lstdc++

其中loopy当然是我的程序的名称。

更新:

苹果似乎强烈反对静态链接,因此它暗示需要另一种方法。

这个关于创建向后兼容的OS X软件的答案可能对你更有用。