Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将GSL与C++;11和新的STL?_C++_Xcode_C++11_Gsl - Fatal编程技术网

C++ 如何将GSL与C++;11和新的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++

当我改为默认的Apple LLVM编译器4.2时,构建失败,我得到一长串错误,Xcode可以追溯到新的“libc++”STL头中的语义问题(未声明的标识符、未知的类型名等)


因此,我的问题是:有人找到了在新的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库目录)。