gpt4 book ai didi

c++ - 如何将 GSL 与 C++11 和新的 STL 一起使用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:24 32 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

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

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

关于c++ - 如何将 GSL 与 C++11 和新的 STL 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15678275/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com