在OSX 10.9中,clang++的默认选项是使用libc++,这也是Macport在构建软件包时使用的选项。有没有办法告诉Macports使用libstdc++呢?
特别是我想通过Macports构建OpenCV,以便它使用libstdc++,但我想我将遇到需要这样做才能处理其他软件包的情况。
特别是我想通过Macports构建OpenCV,以便它使用libstdc++,但我想我将遇到需要这样做才能处理其他软件包的情况。
-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。它很差劲。-stdlib=libstdc++
的CXX标志构建它,但仍然构建的库链接到libc++。 - Puchatek有一种方法是从源代码构建opencv,并使用configure.cxx_stdlib变量来指定libstdc ++作为您的C ++运行时库。
尝试以下操作:
sudo port install -s opencv configure.cxx_stdlib="libstdc++"