在OSX 10.9中,clang ++的默认-stdlib
选项是libc++
,这就是Macport在构建包时所使用的选项。
有没有办法告诉Macports使用libstdc++
呢?
特别是我想通过Macports构建OpenCV,所以它使用libstdc++
,但我想我也需要为其他软件包做这样的事情
答案 0 :(得分:3)
选项很简单:-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}"
另一种方法是安装gcc48
(或更高版本)端口,并将其用作编译器。不要使用旧版本的Xcode安装的旧gcc-4.2.1。这是垃圾。
答案 1 :(得分:2)
实现此目的的一种方法似乎是从源构建opencv,并使用configure.cxx_stdlib变量将libstdc ++指定为C ++运行时。
尝试以下内容:
sudo port install -s opencv configure.cxx_stdlib="libstdc++"