c++ - 从命令行用 clang 编译 : compatibility issues mac os X

标签 c++ macos c++14 clang++

我正在使用 cmake、clang++、boost 和 openCV(静态链接 - 编译标志:-Wall -std=c++14 -O3)在 MacOsX10.10 上编译一个 c++14 项目。如何确保程序在旧版 MacOsX 中开箱即用? (在其他 Mac 计算机上也是如此吗?)我已经在运行 OS X 10.7 的旧 MacBook 上测试了二进制文件,但它失败了。使用 xcode 可以针对某些特定的 SDK 构建程序,我可以从命令行执行类似的操作吗?

附言这是一个更笼统的问题,但可以在此处找到此特定项目的源代码:https://github.com/MarinosK/oiko-nomic-threads

最佳答案

您需要确保所有依赖项都静态链接到您的可执行文件中。因此,这不仅包括 .a(静态库或对象存档),还包括 C++(可能还有 C)标准库。

例如:

clang --std=c++14 -stdlib=libstdc++ main.cpp -o main thirdparty.a -static -lstdc++

关于c++ - 从命令行用 clang 编译 : compatibility issues mac os X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31627462/

相关文章:

c++ - struct 的字段作为模板参数

ruby-on-rails - sudo gem install pg -v '0.18.4' 在 macos sierra high (RoR) 上不起作用

visual-c++ - 自定义分配器与 promise 和打包任务

c++ - 使用 C++14 和 Linux 的 Travis CI

c++ - 如何从一个函数锁定 shared_mutex 并从另一个函数解锁它?

c++ - 子类隐藏父类的构造函数

c++ - Doxygen:识别所有 C++ 注释

c++ - 我应该谨慎使用 boost::archive 吗?

python - 安装 PyGraphviz 时出错(Mac OS X、Anaconda)

objective-c - NSView 的角是透明的,但不应该是