问题标签 [gcc4.9]

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.

0 投票
1 回答
2311 浏览

c++ - 在 Ubuntu 15.10 上使用 g++-4.9 编译时出现运行时错误 [abi:cxx11]

我最近将 Ubuntu 从 15.04 更新到 15.10。这些版本之间的主要区别之一是默认 gcc 版本从 gcc-4.9 -> gcc-5 的更新。我正在开发的库是为 gcc-4.9 编写和编译的,并且依赖于仅在 gcc-4.9 中工作的其他库。

我已经在我的计算机上安装了 gcc-4.9,我可以成功编译库和我的源文件。但是,当我尝试运行生成的程序时,出现此错误:

源代码和我在这里尝试阅读的文件在升级之前可以正常工作。我曾尝试使用该-D_GLIBCXX_USE_CXX11_ABI=0标志,但我不确定这是正确的做法,它也不起作用。

这是我当前包含在我的 makefile 中的标志的一个示例:

有什么想法可以帮助我吗?

0 投票
0 回答
150 浏览

c++ - 测量递增原子计数器和普通计数器的性能

我正在测试使用这样的程序增加原子变量比普通变量慢多少:

在我的笔记本电脑(4GB,Intel(R) Core(TM) i3-2328M CPU @ 2.20GHz)上,我平均获得了 2400 万个增量。

在更好的机器上(8 x Intel(R) Xeon(R) CPU E5-4610 v2 @ 2.30GHz,256 GB RAM)令我惊讶的是,尽管处理器要好得多,但我平均获得了 300 万个增量。

两台机器都有相同的操作系统(Fedora 21)。

我知道串行程序中的内核(或处理器)数量与性能的提高无关,但我将这些硬件信息仅作为对读者的提示。

0 投票
0 回答
1678 浏览

gcc - gcc 4.9.3:更积极的 NULL 指针检查删除

我有以下代码摘录(从一个大项目中摘录),当使用 or 编译gcc 4.9.3-O2-O3当它尝试在块 ( )s内取消引用时它会崩溃,因为它是一个指针。ifs->someFieldsNULL

通过在 gdb 中反汇编这段代码,我注意到 null 检查实际上是由编译器优化的,这解释了崩溃。我google了一下,发现有一个选项-fno-delete-null-pointer-checks可以解决这个问题,但是在我用这个选项编译代码后,它的行为是一样的。

这不会闯入gcc 4.7.2

另一个数据点是,如果我将代码更改为以下内容,它在gcc 4.9.3. NULL在 gdb 中,在这种情况下,检查似乎没有优化。

虽然我知道我可以更改代码以使其工作,但这是一个大项目,我无法在任何地方更改类似的情况,是否有一些其他编译器标志可以关闭编译器优化以进行空检查?

0 投票
1 回答
33 浏览

opencv - 这个时差的原因是什么?

我的代码有问题

在以下代码中:
GainDetailMatIMat9792*2448 矩阵的类型
ContrastGainBound4096xContrastGainLayerIint
平台:Android 4.4,NDK gcc 4.9

A:

乙:

A 比 B 多使用 13 毫秒。我通过在 Application.mk
中设置来关闭 gcc 优化APP_OPTIM := debug

有没有人知道原因?
我认为也许max(0, GainDetailMatI - 4096.0)返回类型MatExpr
t=max(0, GainDetailMatI - 4096.0);转换MatExprMat
也许这就是原因?
非常感谢!

0 投票
1 回答
179 浏览

regex - c++0x 正则表达式适用于 clang 但不适用于 gcc 4.9.2

我正在解析如下所示的多行文本记录:

我使用一些正则表达式从这些记录中提取数据。它们在使用 clang (MacOS X) 和 gcc 4.9.2 (Ubuntu) 编译时都可以工作。然而,其中一个regex_error在使用 gcc 编译时会抛出一个。这是最小(非)工作示例:

我用https://myregextester.com测试了所有的正则表达式字符串,它们工作得很好。此外,在 MacOS 上使用 clang 编译的代码可以毫无问题地解析大量真实案例数据。但现在我必须在 Linux/gcc 系统上运行代码。

0 投票
1 回答
118 浏览

c++ - 使用 Eigen 的插件在第二次运行时崩溃

我正在编写一个由程序加载以添加功能的模块,我偶然发现了一个我无法理解的非常奇怪的崩溃。

首先,我使用 MSVS2015 在 Windows 中编译了完全相同的东西,它可以正常工作。但是,当我在 Unix(Solaris 10)上使用 GCC 4.9.3 编译它时,会话在第二次运行代码时崩溃,我已经设法将其范围缩小到或多或少确切地导致它崩溃的原因:复制 Eigen::MatrixXf 对象。

一个使它崩溃的非常简单的例子如下:

但是,不涉及复制矩阵的一切似乎都可以正常工作,当我构建一个非常简单的可执行程序时,我可以很好地复制数组。

我设法缩小了 Makefile 中的参数范围,但没有区别:

我真的不知道这可能是什么原因,所以我希望有人能够指出我正确的方向。我对 Unix 开发还很陌生,不确定调试它的最佳方法是什么,因此也很感谢那里的帮助。

值得注意的是,我必须自己构建 gcc 的版本,因为 Solaris 10 (x86) 没有官方二进制文件,但没有错误,除此之外它对所有内容都非常有效。

谢谢!

0 投票
1 回答
132 浏览

c++ - 寄存器、c++14 和 gcc 的编译错误

下面是我用 gcc 4.9 编译的带有标志 -std=c++1y 的代码:

我得到的错误是“为'(sp)'注册的预期显式地址”。但是,没有 c++1y 标志,我没有收到错误消息。我无法获得有关标志的任何信息来抑制显示此问题的此功能或 c++14 功能。请任何人分享您的想法以解决此问题。

0 投票
1 回答
759 浏览

node.js - npm 安装期间 libssh2 中的“C 编译器无法创建可执行文件”

在nodegit的 npm install 期间出现以下错误:

有人可以帮我弄这个吗?是因为权限问题导致 C 编译器无法创建可执行文件吗?

我的环境:

操作系统:centos-release-6-8.el6.centos.12.3.x86_64

海湾合作委员会:4.9.1

打开ssl:openssl-1.0.1e-48.el6.x86_64

libssh2:libssh2-1.4.2-2.el6_7.1.x86_64

节点:v4.4.7

npm:2.15.8

gcc -v给出:

这是 /home/mhu/nodegit/vendor/libssh2 中 config.log 中给出错误的部分:

0 投票
3 回答
5880 浏览

llvm - Clang++ --gcc-toolchain 和 gcc 4.9.3 链接问题

(Ubuntu 16.04.1)

默认情况下,16.04.1 clang 正在为 5.4 选择 gcc 工具链。不幸的是,我有一个需要5.0 之前的 ABI的库我无法访问源代码,实施者也没有发布新版本。我一直在尝试使用 --gcc-toolchain 选项,但我无法让它工作。(ctrbegin.o 和 crtend.o 在链接处没有得到正确的前缀。)

当我尝试指定 --gcc-toolchain 时,clang 似乎接受了,然后完全忽略了该值。(16.04.1 上的 clang++-3.5 也会发生同样的事情。)

这是正确的语法吗?请注意,输出中缺少库目录。

我已经尝试了上述主题的许多变体。(4.9,删除相对路径等)我尝试了 -isystem 选项和 -cxx-isystem 选项。(两者都建议作为类似问题的解决方案。)

我错过了什么? (我希望它很简单,并且按顺序敲打头!)

0 投票
1 回答
2237 浏览

c++ - 与 dylib ld 的静态链接:找不到 -lcrt0.o collect2 的库:错误:ld 返回 1 个退出状态

我正在使用 gnu49 compile 编译一个 qt5 c++ 项目,同时在 Mac OSX El Captitan 上使用 c++11 标志和通常的 qt 框架标志链接一些其他 dylib(犰狳、boost 库等)。该项目编译良好,但为了使其在其他几台机器上更具可移植性,我试图静态链接几个动态库。我在(要静态链接的)库(例如-static -lboost_thread)之前添加了 -static 标志,如此处所述。

https://gcc.gnu.org/ml/gcc/2000-05/msg00517.html

但是,我收到以下错误。

ld:找不到-lcrt0.o collect2的库:错误:ld返回1退出状态

我验证了该错误仅在尝试静态链接而不是动态链接时出现。