问题标签 [gcc4.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.

0 投票
0 回答
1733 浏览

gcc - 在 CentOS 6.5 上构建 gcc 4.8.2 失败

好的,所以我想在 CentOS6.5 上运行 QtCreator,显然它需要一个合理的最新版本的 gcc (4.8.2),所以我在这里尝试做 QT5 创建者建议的事情。当我尝试构建 gcc 时,它会在此错误处停止,我不知道出了什么问题,这里是 gcc 编译器转储的地方:

请帮忙谢谢:)

编辑:好的,我想出了如何让事情滚动:

  1. 你需要安装 devtoolset 2.1
  2. 然后安装 devtoolset-libutils
  3. 遵循 gnu 构建指令,现在应该构建良好。

该错误是由于 centos 附带的过时 libutils。

0 投票
1 回答
268 浏览

c - 如何利用 CPU 特定功能编译 c 代码

如果在 linux 上我尝试以标准方式编译 c 代码

生成的二进制文件仅使用基本 CPU 功能,因为现代 CPU 具有许多特殊功能来提高性能,如 AVX、AVX2、SSE3、SSE4 等。

由于我只想针对特定的 CPU 类型(i7 Sandy Bridge),有没有办法设置编译器以利用这些功能?

0 投票
1 回答
1080 浏览

macos - Mac OS X 链接动态库

我正在尝试在 Mac OS X Lion、gcc4.8、XCode 5.0.2 下构建这个库:

https://github.com/zeromq/zmqpp

我用以下方法构建了 gcc4.8:

当我尝试构建它时,链接器(在 /usr/bin 中)给出了以下错误:

所以我删除了 dynamic 前面的 r 以便它读取

这似乎没问题。但是,然后我得到

我不知道如何摆脱这个错误。如果我只是从 Makefile 中删除 -soname,我会得到

libzmqpp.so.3 看起来甚至不像 Mac 动态库的正确协议。

如果我删除整行并替换它,我会得到

一件事,它使用的 ar 是 /usr/bin 而不是 /usr/local/Cellar/gcc48/4.8.2/bin/gcc, gcc-ar-4.8

0 投票
2 回答
262 浏览

gcc - gcc 4.8.1 在 ubuntu 12.04 中将 .c 文件编译为 c++

我的一个用户在尝试使用 gcc 4.8.1 在 ubuntu 12.04 上编译我们的混合 C/C++ 代码库的 C 部分时收到错误消息

我们有一个 C++ 库,其中包含一些 C 链接函数,并且想要编译一个链接到它的 C 程序。该库是用 g++ 编译的并且构建良好。c 程序失败如下:

该程序有一个小写的 .c 文件后缀,那么为什么 gcc 会尝试将其编译为 c++ 呢?我们还没有在其他操作系统上看到这一点。

(我知道我们可以通过删除 -Werror 或使用 -xc 处理这个特定文件来解决问题,但我想解决真正的问题。)

0 投票
0 回答
292 浏览

c - 迷失在库文件中

我正在构建一个项目,由于库文件中的杂散线,构建被阻止。

什么可能导致库文件中出现杂散线?此处使用的库是在同一构建过程的早期构建的。我正在使用gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1.

0 投票
0 回答
132 浏览

macos - 最近更新的自制程序有冲突的 gcc 依赖项?

自制 0.9.5。跑步brew doctor给了我

然后跑步brew missing给了我

然而,如果我想链接gcc,我需要取消链接gcc48并且gfortran——但我使用gfortranmatplotlibvia pip install

是什么导致了这个问题?

0 投票
3 回答
132 浏览

c - 同样的简单计算,不同的结果

使用 gcc 4.8.2 (Ubuntu 14.04) 我得到不同的结果,而基本上以相同的方式计算一个值。根据我测试的系统上的体系结构(32 位/64 位),也存在差异。

这是什么原因,我该如何预测或避免这些差异?

编辑:铸造晶圆厂浮动不会改变结果,至少在我的系统上(参见 Oli Charlesworth 的评论)。

0 投票
3 回答
28318 浏览

c - GCC 循环展开标志真的有效吗?

在 C 中,我有一项任务,我必须使用分配为二维数组(数组的数组)的巨大矩阵进行乘法、求逆、移位、加法等。

我找到了 gcc 标志-funroll-all-loops。如果我理解正确,这将自动展开所有循环,而无需程序员的任何努力。

我的问题:

a) gcc 是否包括这种带有各种优化标志等的-O1优化 -O2

b)我是否必须pragma在我的代码中使用任何 s 来利用循环展开或循环自动识别?

c)如果展开可以提高性能,为什么默认不启用此选项?

d)有哪些推荐的 gcc 优化标志以尽可能最好地编译程序?(我必须运行这个针对单个 CPU 系列优化的程序,这与我编译代码的机器相同,实际上我使用march=native-O2标志)

编辑

似乎在使用 unroll 方面存在争议,在某些情况下可能会降低性能。在我的情况下,有多种方法可以在 2 个嵌套循环中进行简单的数学运算,以迭代为大量元素完成的矩阵元素。在这种情况下,展开如何会减慢或提高性能?

0 投票
0 回答
705 浏览

gcc - 为 gcc 4.8 创建独立的 NDK

我想使用适用于 Android 的 gcc 4.8 交叉编译代码。运行 make-standalone-toolchain.sh 给出

arm-linux-androideabi-gcc (GCC) 4.6 20120106(预发布)

根据文档1,有一个为 gcc 4.8 构建它的选项

添加了 APP_ABI=armeabi-v7a-hard,以及额外的 multilib 选项 -mfloat-abi=hard。这些选项用于 ARM GCC 4.6/4.8 和 clang 3.3/3.4(使用 4.8 的汇编器、链接器和库)。

目前我正在使用这个命令来生成独立的工具链。

sudo sh make-standalone-toolchain.sh --verbose --ndk-dir=PATH_TO_/android-ndk-r9d --system=darwin-x86_64 --toolchain=arm-linux-androideabi-4.8 --install-dir=PATH_TO_INSTALL_DIR

关于如何使用 NDK for gcc 4.8 制作独立编译器的任何想法?(我打算将此编译器与 cmake 一起使用)

先感谢您

0 投票
1 回答
620 浏览

gcc - GCC 不会在 32 位中使用 SSE

如果我以这种方式使用 gcc 编译代码,则在 linux x64 上

gcc -m32 -march=native -mfpmath=sse -c -ftree-vectorize myfile.c

如果我看一下程序集,我看不到使用任何 SSE 指令或寄存器,并且代码结果与生成的代码完全相同,没有任何标志 gcc myfile.c

在我的代码中,对浮点数组和矩阵进行了许多操作,因此与基本编译相比,gcc 不使用 SSE 并且不执行任何优化,这很奇怪。

为什么?这是编译器的错误吗?

编辑

如果我添加标志-msse2,编译器也使用 SSE 指令,但march=native应该包括当前 CPU 支持的所有指令,因此也包括 SSE2。为什么会这样?