2

我正在建立一个新的 C++ 项目(在 Xcode 4.6 中),我非常想使用新的 C++11 标准的特性(lambda 表达式、自动等)。我正在尝试(静态地)将 Gnu 科学图书馆(GSL)链接到这个项目中,使用 Darson 对上一个问题的回答。但是,他的回答建议将编译器更改为不支持新 C++11 功能的 LLVM GCC 4.2。

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

所以我的问题是:有没有人找到在新的 C++11 标准中使用 GSL 的方法?它不一定必须在 Xcode 中,我很乐意使用任何 (UNIX) IDE 或构建环境。

4

1 回答 1

1

我已经能够解决我自己的问题,我想我会与那些可能也在为此苦苦挣扎的人分享它。

就像我怀疑的那样,出现问题是因为我的 GSL 安装(来自 macports)是针对“旧”STL(libstdc++)构建的。因此,我的解决方案是针对“新”STL (libc++) 重新编译 GSL。这很容易通过解压源代码并运行来完成

./configure CC=clang CFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++"

我还添加--disable-shared了仅构建静态库,并--prefix=...设置构建路径。然后剩下的就是运行makemake install

于 2013-04-04T12:01:49.520 回答