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

标签 c++ macos clang static-linking libstdc++

我正在编写 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 当然是我的程序的名称。

更新:

看来 Apple strongly discourages static linking所以它表明需要另一种方法。

This answer关于创建向后兼容的 OS X 软件可能对您有用。

关于c++ - 如何使用 clang 将我的 c++ 程序与 osx 上的 libstdc++ 静态链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23471978/

相关文章:

macos - "Invalid development certificate found"在 Mac 上

c - 如何使用 Clang 和 MinGW C/C++ 库编译代码? (float.h 的特殊问题)

C++ 重新定义变量,全局命名空间被污染,我不知道为什么

c++ - 如何在 C++ 中的 .so 文件中包含一个库

c++ - 我可以排队删除文件吗?

c++ - 双端队列实现

c - 在 MacOS 上构建 mongodb C 驱动程序

linux - Bash 脚本 cd 问题

clang - wget|sudo 在 Ansible 命令中失败

c++ - 如何使用 json11 库修改 json 对象?