C++ 如何将GSL与C++;11和新的STL?
当我改为默认的Apple LLVM编译器4.2时,构建失败,我得到一长串错误,Xcode可以追溯到新的“libc++”STL头中的语义问题(未声明的标识符、未知的类型名等)C++ 如何将GSL与C++;11和新的STL?,c++,xcode,c++11,gsl,C++,Xcode,C++11,Gsl,当我改为默认的Apple LLVM编译器4.2时,构建失败,我得到一长串错误,Xcode可以追溯到新的“libc++”STL头中的语义问题(未声明的标识符、未知的类型名等) 因此,我的问题是:有人找到了在新的C++11标准中使用GSL的方法吗?它不一定要在Xcode中,我可以自如地使用任何(UNIX)IDE或构建环境。我已经解决了我自己的问题,我想我也会与那些可能在这方面遇到困难的人分享它 正如我所怀疑的,出现问题是因为我的GSL安装(来自macports)是根据“旧”STL(libstdc++
因此,我的问题是:有人找到了在新的C++11标准中使用GSL的方法吗?它不一定要在Xcode中,我可以自如地使用任何(UNIX)IDE或构建环境。我已经解决了我自己的问题,我想我也会与那些可能在这方面遇到困难的人分享它 正如我所怀疑的,出现问题是因为我的GSL安装(来自macports)是根据“旧”STL(libstdc++)构建的。因此,我的解决方案是根据“新”STL(libc++)重新编译GSL。通过解包源代码并运行
./configure CC=clang CFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++"
我还添加了
--disable shared
以仅构建静态库,以及--prefix=…
以设置构建路径。然后剩下的就是运行make
和makeinstall
我觉得Darson的答案不对;他谈到将库搜索路径设置为/usr/include/lib
???仅出于这个原因,我就会忽略它。@trojanfoe我想他指的是“/usr/local/lib”,在我的例子中是“/opt/local/lib”(默认macports库目录)。