问题标签 [gcc4.7]
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 - 为什么 scanf("%hhu", char*) 在本地时会覆盖其他变量?
标题说明了一切。我正在使用 GCC 4.7.1(与 CodeBlocks 捆绑)并且遇到了一个奇怪的问题。考虑一下:
对于输入 1、2 和 3,此输出
但是,如果我将 a、b 和 c 声明为全局变量,它会按预期工作。为什么会这样?
先感谢您
其他详情:
我正在运行 Windows 8 64 位。我也尝试了 -std=c99 并且问题仍然存在。
进一步的研究
测试此代码
表明 scanf 将“%hhu”解释为“%u”。它直接忽略了“hh”。输入为 1 的代码输出为:
c++ - linux上的gcc 4.7中的std :: async是否损坏?
在实际代码中使用它之前,我正在std::async
隔离测试,以验证它在我的平台(即 ubuntu 12.10 64 位)上是否正常工作。
它有效(很少见)并且通常只是挂起。如果它对你有用,不要妄下结论。多试几次,它可能会挂起。
如果我删除 pthread_mutex 测试,它不会挂起。这是我可以重现挂起的最小代码。是否有某些原因不能将 C pthread 代码与 C++ 异步代码混合使用?
这是构建命令行:
没有构建输出消息。
这是 g++ -v 的输出
gcc - Ubuntu (12.10) 和 GCC 4.7/4.8 有什么问题?
由于 GCC 和 Ubuntu 的多个版本,我遇到了安装 GCC 所必需的几个头文件和目标文件的路径和命名问题。
描述:在安装 ubuntu(例如在我的情况下为 12.04)并安装 gcc 的所有先决条件后,我运行以下命令:
为了完整起见,安装过程的其余部分:
但是,这种简单而正确的安装 gcc 的方法在“制作”步骤中存在一些问题,并显示以下错误消息:
1.) 'stubs.h' 的问题
这可以通过添加到 ~/.bashrc 的以下命令来修复:
2.) 'crti.o'、'crtn.o' 和 'crt1.o' 的问题
这可以用非常丑陋的解决方案来解决:
因为 - 我不知道为什么 - 以下命令在“sudo make install”的链接步骤中不能解决问题
(使用这些解决方案,我可以在 Ubuntu 12.04 上编译 GCC-4.7.2。 - 我在 Ubuntu 12.04 上编译 GCC-4.8.0 时仍然遇到问题,但这是不同的主题。)
我的问题是:有人知道我们遇到这些问题的原因/背景吗?有人知道合适的解决方案吗?(对于“适当的解决方案”,我的意思是一种不需要设置环境变量或将符号链接库链接到不同目录的解决方案。对我来说,这些更改很难看,因为它们需要对系统进行更改,而这些更改可能无法追溯或重做。)
c++ - gcc nullptr 问题
我正在移植现有代码以在 gcc 4.7.2 下编译,并遇到了一个关于 nullptr 的奇怪问题。我设法将其归结为一个简单的测试用例:
用 g++ test.cpp -o test -std=c++0x 编译它。
我期望的输出是“我在这里 1”,但我得到“原始值”,表明从未调用过 SetMarker。
调用 Test2 或 Test3 会给出预期的输出。
我正在使用的代码使用在 Test3 中看到的模式——最初没有在 NULL 前面进行强制转换——在从 int 到 char* 的无效转换时出现错误,所以我开始将所有这些 NULL 更改为 nullptr。不幸的是,这只是行为不正确。
我可能被迫更改代码以使用 Test2 中的模式(无论如何我更喜欢),但我很想知道这是否是编译器中的错误,或者我是否遗漏了一些东西。
c++ - 无法从 std::memory 或 std::tr1 找到 make_shared (gcc 4.7)
我不明白为什么我无法从std::memory or std::tr1
包含标头中找到 make_shared。
我在我的机器上只看到 1 个版本的 gcc
我-std=c++11
也在项目构建属性中使用标签
我的环境:ubuntu ecplise juno R2 CDT
更新:
Eclipse 控制台窗口中的构建显示它实际上是成功的,但是代码编辑器保持红色下划线 shared_ptr 和 make_shared。我试图重建索引,清除项目。没有什么可以消除错误。有什么建议么?
更新 2:
下面的链接解决了我的问题 Enable C++11 in Eclipse CDT (Juno/Kepler/Luna) indexer
boost - 使用从 macports 安装的 gcc-mp-4.7 在山狮上构建提升时出错
我遇到了一个非常非常棘手的问题。我的最终目标是构建 cpp-netlib。cpp-netlib 使用 C++-11,它在我的机器中使用原始 boost 构建引发链接器错误。我使用安装在我机器上的默认 gcc 构建 boost 的原因,它工作得很好。但是,按照http://www.boost.org/doc/libs/1_53_0/more/getting_started/unix-variants.html {第 5.2 节开始} 中给出的步骤似乎对我没有帮助。我收到这样的错误
我在 user-config.jam 中添加了我的依赖项,指定了 mac-ports gcc 路径并使用工具集 gcc-4.7 调用 b2。我的最终目标是使用 cpp-netlib 进行 http 调用的应用程序,我也想在我的应用程序中使用 boost 正则表达式。
c++ - 链接器错误:未定义对符号“pthread_rwlock_trywrlock@@GLIBC_2.2.5”的引用
我一直在使用 CentOS、Qt 4.7 和 GCC 4.4 进行开发
我刚刚安装了包含 GCC 4.7.2 的 Red Hat Developer Toolset 1.1,在结束时make
出现错误
我猜Qt线程正在引用它。我该如何解决?
linux - 在 32 位 debian 系统上生成 64 位代码
您能否描述一下您是如何在 32 位 debian 机器上安装gcc-multilib和g++-multilib以生成 64 位代码的?
我在我的 32 位 debian 系统上安装了 gcc-4.7.2(还安装了 binutils-2.23)。当我尝试使用 -m64 标志编译一个简单的 hello world 程序时
我收到以下错误消息:
请告诉我在 32 位 debian 系统上生成 64 位代码的步骤。
c++ - 链接器错误:gcc
在编译程序、配置和安装binutils、textinfo 等一些东西 时,我每次都会遇到这个错误。
我想清楚地知道这件事。什么时候会到来,实际问题是什么,以及如何解决?
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)?