问题标签 [gcc4.6]
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.
c++ - C++11 初始化语法问题(使用 gcc 4.5 / 4.6)
以下 C++11 代码有什么问题:
gcc 在指示的行出现错误(我尝试了 gcc 4.5 和 gcc 4.6 的实验版本)
这不是有效的 C++11,还是 gcc 的实现不完整?
编辑:这是编译器错误:
c - Linux 上的这个 GCC 错误是什么,我该如何解决?gcc:内部编译器错误:非法指令(程序为)
我输入gcc hello.c
并出现:
hello.c 只是:
我想不出任何方法让它变得更简单!(那里也发生了同样的事情printf
。)
那么:你如何解决这个问题?我在 Raspian 上,在 Raspberry Pi 上。
编辑
gcc -v 给出
不,我没有安装它。
至于更新,sudo apt-get install gcc
给出
是的,你可以运行as
,它说Illegal instruction
没有参数。
我不知道什么是交换空间。
gcc -O0 -g hello.c
给出同样的错误。
gcc 无法识别--enable-debug
.
c - GCC 4.6.3 与 4.7.3:x86_64 打印 greg_t 的差异
我正在尝试修复构建错误。
有问题的代码行如下:
因此:
- gregs 的类型为 gregset_t
- gregs[i] 是 greg_t 类型
现在这段代码(用于生成核心转储和堆栈跟踪)已经工作了很长时间,但最近,GCC 4.7.3(Ubuntu 13.04)开始拒绝它:
美好的。所以我将违规行更改为:
但是 GCC 4.6.3 (Ubuntu 12.04) 反而抱怨:
在这部分代码中已经有用于各种寄存器的 ifdef,所以我可以添加另一个,但是有没有一种很好的干净方法来做到这一点(尤其是不需要额外的 ifdef)?
c++ - 错误:命名空间“std”中的“mutex”没有在 gcc 4.6.2 中命名类型
像这样的简单程序
尝试了以下编译
顺便说一句,我在 Mac 上编译。
c++ - Travis-CI 因符号查找错误而失败,在其他地方工作正常
我有一个名为 NMatrix 的库(技术上是 Ruby 扩展),它是用 C 和 C++ 编写的。它使用 C++ 模板来管理不同的类型,例如,Rational128
与Rational64
. 它也有RubyObject
和。我通过在目标文件中创建一些模板版本来强制构建这些模板版本——在从库入口点调用的函数中。Complex64
Complex128
它在 GCC 4.7 中工作得很好,但是当我在 Travis-CI 上编译时,它在运行时遇到一个未定义的符号错误:
未定义的符号是nm::Complex::Complex(nm::RubyObject const&)
,它是显式定义和实例化的(见下文)。
这是一个精简版data.cpp
:
data.h
就像这样:
nmatrix.cpp
是声明库入口点的地方。相关部分如下所示:
那么我做错了什么?为什么这适用于 GCC 4.7.1(所有规范都通过),但不适用于 4.6.3?它是一个错误吗?(如果是错误,是否有解决方法?)
如果你很好奇,相关文件的完整版本在这里。
c++ - 编译器错误预期嵌套名称说明符
我是这个问题的 OP:扩展一个我收到了很好答案的课程。但是,当我尝试编译代码时(对我的项目进行了轻微修改),我收到了以下消息(行号已更改以反映以下示例代码):
以及更多似乎源于这条线的东西。我是 C++ 的新手,我对答案(以及即将出现的问题)的研究得出了这样一个事实:微软的编译器似乎接受了代码,但符合标准的编译器却不接受。
我目前拥有的代码如下:
通读链接问题中的代码向我表明(以我有限的知识)它应该都可以工作。
因此,我的问题是:我需要在此声明/定义中进行哪些更改以使其能够使用 gcc 进行编译(使用 -std=C++0x 编译的 4.6.3 64 位 linux)?
macos - mac上的gcc 4.6,我如何让它工作?
我在让 gcc 4.6 在 Mac 10.8.5 上运行时遇到问题。
我在此类问题上的经验非常有限,我一直在四处寻找并尝试不同的方法来使其发挥作用,但无济于事。如果这个问题的答案真的很简单,我很抱歉(我真的希望它是!)
这是我的问题:
我需要运行一些软件来进行分析,称为贝叶斯扫描。这部分软件需要一个作为 gcc4.6 一部分的库才能在 MacOSX 上运行。他们在他们的分发页面上这么说(http://cmpg.unibe.ch/software/BayeScan/download.html)
我现在已经使用 homebrew* 安装了 gcc4.6。
但是,这并不能解决我的问题。因为当我尝试运行软件时仍然收到以下错误消息:
dyld:库未加载:/usr/local/lib/libgomp.1.dylib
谷歌告诉我 libgomp.1.dylib 是 gcc46 的一部分。
当我输入: gcc --version 时,我得到:
配置: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM 5.0 版 (clang-500.2.79) (基于 LLVM 3.3svn)目标:x86_64-apple-darwin12.5.0
这让我相信,当我的计算机在寻找 gcc 时,它会寻找缺少所需库的旧版本。或者gcc4.6没有正确安装。
所以我有两个问题:
1)我的假设/结论是否正确?
2) 如何让我的电脑指向 gcc4.6?
提前感谢您提供的任何帮助。这个问题让我有点发疯。
有没有很好的资源来学习如何构建环境和组织依赖关系,因为这是我经常遇到的问题?
(*我被建议使用自制软件,但我认为这对我来说有点浪费时间,因为我的计算知识不足以成为对我有用的工具,因为文档非常有限)。
c - 具有_TIME_、_FILE_、_FUNCTION_、_LINE_的自定义打印功能
我在debug.h中有以下代码:
在debug.c 中:
编译后我收到以下错误:
我该如何解决这个问题?这里有什么问题?先感谢您。
c++ - 将 void* 与 uint16_t 进行比较
在一些在 GCC 4.6(带有-fpermissive
)上编译良好的遗留代码中,我有这个:
这种比较在 GCC 4.6 上是否定义明确?它是向下转换为 16 位还是向上转换为 32/64 位?
c - fscanf 将输出写入变量的索引
我正在尝试编写交流程序来监控处理器的温度。为了测试我的程序,我使用 fscanf 从文件中读取整数。令我惊讶的是,这在某些条件下不起作用。我正在使用以下代码:
它编译没有错误。在 fscanf 的第三次(也是最后一次)调用之前,一切都按预期工作:然后突然 'c' 得到值 42 (实际上应该得到的 'core' ):
发生分段错误是因为 fclose 尝试关闭不存在的 cmd[42]。
当使用 'CORECOUNT' 的其他值(例如 4)时,一切都按预期工作。但是,当使用二进制最后两位数字为“11”的数字时(例如 3、7、11、15,...),程序将崩溃。当声明另一个整数并将其设置为“0”时,当“CORECOUNT”的值为“11”作为二进制的最后两位数字时,程序按预期工作。如果不是这种情况,'core' 有时会得到奇怪的值(例如,'15274000',每次执行程序时都不相同)。
奇怪的是,这只发生在 gcc 4.6.3 中,而不发生在 gcc 4.8 中
我的代码中的错误在哪里?或者它甚至是编译器中的东西(我非常怀疑)?
就目前而言,我将声明另一个变量('tmp')并将其用作 fscanf 调用中的索引:
如果有任何拼写/语法错误,我很抱歉;英语不是我的母语。