问题标签 [g++4.8]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
boost - 使用 g++ 4.8 在 Mac 上构建 boost 库的设置工具集配置
我正在尝试使用从端口安装的 g++4.8 在 Mac 上构建 boost 库。
我制作了 ~/user-config.jam 并添加了一行using gcc : : g++-mp-4.8 ;
go 使用 g++ 4.8 编译器。我安装了 bjam 和 b2 brew install bjam
。
问题是,当我使用b2
命令构建 boost 时,出现此链接错误:
这是因为 g++4.8 无法像 Apple 的 g++ 4.2 那样识别 -R 选项。
如何设置 g++4.8 的构建选项?这是 b2 使用的命令。我有这个站点以获取配置信息,但我找不到设置工具集配置的有用信息。
c++ - auto 关键字不推断字符串的类型
我有这个简单的代码:
当我在 Ubuntu 12.04 上编译此代码时,它显示以下错误:
我有g++ 4.8.1。auto
g++ 4.8.1 中关键字的使用是否有一些变化?
c++11 - Cloud9 IDE 上的 C++11
当我g++ --version
在 Cloud9 终端上运行时,我得到g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
. 这是一个相当老的版本 - 足够老了,当我尝试使用 C++11 库功能std::unordered_set
时,我得到:"This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options."
我对此不太满意,因为我不喜欢担心我可以使用哪些功能以及我需要避免哪些功能。所以我四处寻找如何将 g++ 更新到最新的稳定版本(在撰写本文时似乎是 4.8.1),但我不知道该怎么做。我试过apt-get
了,但我得到了一个错误:"Sorry, apt-get is not supported on this system. Try c9pm instead."
。好吧,我试过了,但是c9pm list
(应该"List available packages"
)没有显示任何看起来像 g++ 的东西。所以我迷路了。
如何在 Cloud9 上安装 g++ 4.8.1?
当我运行时,lsb_release -a
我看到 Cloud9 IDE 当前运行在"Red Hat Enterprise Linux Server release 6.4 (Santiago)"
.
cuda - 带有 g++ 4.7 和 4.8 的 CUDA 5.5 RC:__int128 构建错误
我正在尝试在 MacOS X 10.8 上使用 CUDA SDK 5.5 RC 和 g++ 4.7 编译一些代码。如果我理解正确,CUDA 5.5 应该适用于 g++ 4.7。查看 /usr/local/cuda/include/host_config.h 它甚至应该适用于 g++ 4.8。
关于 g++ 4.8:我尝试编译以下程序:
但它失败了:
相同的程序使用 g++ 4.7 编译和运行:
但如果我包含 <limits>...
...即使 g++ 4.7 也失败了。构建日志位于此处:https
:
//gist.github.com/lysannschlegel/6121347 您还可以找到一些其他错误,我不完全确定它们是否都与 __int128 缺失有关。
很可能其他标准库也包括破坏 g++ 4.7 的构建,限制是我绊倒的那个。
我还尝试了 g++ 4.5,因为我的机器上也有它(你永远不会有太多的编译器版本,对吗?),它可以工作。
我可以期望这将在 CUDA 5.5 版本中得到解决吗?(我希望 NVIDIA 不只是回到支持 gcc 直到 4.6 版。)
在此期间有没有办法解决这个问题?
更新:
正如@talonmies 在下面指出的那样,这严格来说不是 MacOS 上的 CUDA 5.5 中的错误,因为 MacOS 上不正式支持 gcc。由于许多第三方库不能正确处理支持的工具链、clang 或 llvm-gcc(llvm-gcc 来自 2007 年......),因此仍然需要让 gcc 工作。高达 4.6 的 gcc 应该可以正常工作(我只测试了 4.5)。
您可以使用@BenC 在评论中指出的技巧使 gcc 4.7 工作:
带有 gcc 4.8 的 nvcc 仍然在 cstdlib 中的 __int128 上阻塞。我猜 cstdlib 是在包含 --pre-include 文件之前包含的。
c++ - GCC 4.8.1、C++11、共享库和异常处理问题
我的项目包括以下内容:
- 我的程序,主要用 C++11 编写(因此尝试在 C++03 模式下编译它是不切实际的)
- 一个共享库(https://github.com/SOCI/soci),使用相同的编译器编译
SOCI 抛出我需要在我的代码中捕获的异常。它曾经与 GCC4.7.3 一起工作,但现在我已经迁移到 GCC4.8.1,它不再存在:异常通过所有处理程序(包括catch(...)
)并导致终止:
我尝试了什么:
- 从我的代码中抛出相同的异常(靠近问题点):它被正确的处理程序捕获;
- 重新编译 SOCI
-std=c++11
:没有区别 - 添加
__attribute__((visibility("default")))
到异常类:没有区别 摆弄 -related 符号的
/li>-u
选项typeinfo
:行为没有区别,符号在nm
输出中显示为未定义。请注意,如果没有-u
',则根本没有:
我还阅读了http://gcc.gnu.org/wiki/Visibility,但必须缺少其他内容..
有什么建议吗?
编辑
实际上,这不是任何动态库问题。我应该立即尝试静态编译它——并节省大量时间,因为行为实际上不会改变。(见答案)
c++ - 向量上的 is_copy_constructible 误报
类型特征是否应该能够处理诸如std::vector < std::unique_ptr <int> >
并检测到它不是可复制构造的情况?
这是https://ideone.com/gbcRUa的一个示例(运行 g++ 4.8.1)
如果这是 的正确行为is_copy_constructible
,有没有办法检测复制构造是否不正确?好吧,不仅仅是让它无法编译。
c++ - 获取编译期间使用的最大模板实例化深度
正如标题所说,是否有任何编译器日志记录设置可以提供编译器在编译期间达到的最大实例深度?
如果编译超过了最大模板深度(C++11模式下GCC的默认值为900),编译失败。但我需要的是获得编译器在成功编译期间达到的最大模板实例化深度。
centos6 - 在 CentOS 上构建 g++ 4.8.1 时出错
有人可以建议我在 CentOS 6 上尝试的 g++ 4.8.1 安装有什么问题吗?
安装的编译器是 g++ 4.4.7。
make 步骤在此之后不久结束:
config.log 包含这个关于目标文件后缀的看似无害的评论:
“错误”一词出现在此处的 config.log 文件中(我的 g++4.4 肯定会通过测试):
但我不知道这是否致命。
建议?
c++ - g++ 4.8.1 的 tr1::functional 错误
代码:
在 Linux 上使用 g++ 4.8.1,编译--std=c++11
得到:
这似乎没有任何意义。使用相应的 boost 类可以正常工作。有人可以确认这是 G++ 4.8.1 中的 TR1 错误吗?