OSX 10.9上的Macports - 使用-stdlib = libstdc ++进行编译

Puc*_*tek 7 c++ opencv macports clang

在OSX 10.9中-stdlib,clang ++ 的默认选项是libc++,这就是Macport在构建包时所使用的选项.有没有办法告诉Macports使用libstdc++

特别是我想通过Macports构建OpenCV,所以它正在使用libstdc++,但我想我也需要为其他软件包做这样的事情.

Bre*_*ale 4

该选项很简单:-stdlib=libstdc++

如果您需要更好地控制各种端口的构建过程,您可以随时设置变量,例如:
CXX = "clang -std=c++11 -stdlib=libc++CXXFLAGS = "-Wall -O2 -march=core2"等。

<port>从源代码构建:

sudo port -s install <port> -universal \  
configure.cc="${CC}" configure.cxx="${CXX}" \  
configure.cflags="${CFLAGS}" configure.cxxflags="${CXXFLAGS}"
Run Code Online (Sandbox Code Playgroud)

另一种选择是安装gcc48(或以上)端口,并将其用作编译器。不要使用与旧版本 Xcode 一起安装的旧 gcc-4.2.1。这是垃圾。

  • 奇怪的是,Macports 接受这些选项,但并不尊重它们。我删除了 OpenCV 库,通过带有“-stdlib=libstdc++”的 CXX 标志来构建它,并且仍然构建的库链接到 libc++。 (2认同)