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

时间:2014-02-04 07:53:12

标签: c++ opencv clang macports

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

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

2 个答案:

答案 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++"