问题标签 [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.
gcc - 在 CentOS 6.5 上构建 gcc 4.8.2 失败
好的,所以我想在 CentOS6.5 上运行 QtCreator,显然它需要一个合理的最新版本的 gcc (4.8.2),所以我在这里尝试做 QT5 创建者建议的事情。当我尝试构建 gcc 时,它会在此错误处停止,我不知道出了什么问题,这里是 gcc 编译器转储的地方:
请帮忙谢谢:)
编辑:好的,我想出了如何让事情滚动:
- 你需要安装 devtoolset 2.1
- 然后安装 devtoolset-libutils
- 遵循 gnu 构建指令,现在应该构建良好。
该错误是由于 centos 附带的过时 libutils。
c - 如何利用 CPU 特定功能编译 c 代码
如果在 linux 上我尝试以标准方式编译 c 代码
生成的二进制文件仅使用基本 CPU 功能,因为现代 CPU 具有许多特殊功能来提高性能,如 AVX、AVX2、SSE3、SSE4 等。
由于我只想针对特定的 CPU 类型(i7 Sandy Bridge),有没有办法设置编译器以利用这些功能?
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
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 处理这个特定文件来解决问题,但我想解决真正的问题。)
c - 迷失在库文件中
我正在构建一个项目,由于库文件中的杂散线,构建被阻止。
什么可能导致库文件中出现杂散线?此处使用的库是在同一构建过程的早期构建的。我正在使用gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1
.
macos - 最近更新的自制程序有冲突的 gcc 依赖项?
自制 0.9.5。跑步brew doctor
给了我
然后跑步brew missing
给了我
然而,如果我想链接gcc
,我需要取消链接gcc48
并且gfortran
——但我使用gfortran
了matplotlib
via pip install
。
是什么导致了这个问题?
c - 同样的简单计算,不同的结果
使用 gcc 4.8.2 (Ubuntu 14.04) 我得到不同的结果,而基本上以相同的方式计算一个值。根据我测试的系统上的体系结构(32 位/64 位),也存在差异。
这是什么原因,我该如何预测或避免这些差异?
编辑:铸造晶圆厂浮动不会改变结果,至少在我的系统上(参见 Oli Charlesworth 的评论)。
c - GCC 循环展开标志真的有效吗?
在 C 中,我有一项任务,我必须使用分配为二维数组(数组的数组)的巨大矩阵进行乘法、求逆、移位、加法等。
我找到了 gcc 标志-funroll-all-loops
。如果我理解正确,这将自动展开所有循环,而无需程序员的任何努力。
我的问题:
a) gcc 是否包括这种带有各种优化标志等的-O1
优化 -O2
?
b)我是否必须pragma
在我的代码中使用任何 s 来利用循环展开或循环自动识别?
c)如果展开可以提高性能,为什么默认不启用此选项?
d)有哪些推荐的 gcc 优化标志以尽可能最好地编译程序?(我必须运行这个针对单个 CPU 系列优化的程序,这与我编译代码的机器相同,实际上我使用march=native
和-O2
标志)
编辑
似乎在使用 unroll 方面存在争议,在某些情况下可能会降低性能。在我的情况下,有多种方法可以在 2 个嵌套循环中进行简单的数学运算,以迭代为大量元素完成的矩阵元素。在这种情况下,展开如何会减慢或提高性能?
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 一起使用)
先感谢您
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。为什么会这样?