问题标签 [gcc]

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 投票
3 回答
1678 浏览

gcc - 从 g++/gcc 3.2.3 到 4.2.4 的性能改进

我们一直在研究 g++ 版本 3.2.3 和 4.2.4。在 4.2.4 中,我们的一些代码库的性能改进非常显着。

我已经尝试搜索gcc buzilla 数据库以找到有关哪些错误可能有如此显着改进的提示,但我没有找到任何作为候选者脱颖而出的单个错误。

这些改进是许多慢慢产生影响的小变化的结果吗?或者有没有说可能产生影响的前 5 项改进?

对于某些背景,我们的代码库确实很好地利用了 STL 容器和算法,以及诸如“inline”关键字之类的 C++ 特性。

0 投票
2 回答
2438 浏览

gcc - 使用内部函数时如何让 GCC 使用两个以上的 SIMD 寄存器?

我正在编写一些代码并尝试使用 SIMD 内在函数 SSE2/3 来加速它。我的代码具有这样的性质,以至于我需要将一些数据加载到 XMM 寄存器中并对其进行多次操作。当我查看生成的汇编代码时,似乎 GCC 不断将数据刷新回内存,以便重新加载 XMM0 和 XMM1 中的其他内容。我正在为 x86-64 编译,所以我有 15 个寄存器。为什么 GCC 只使用两个,我该怎么做才能让它使用更多?有什么方法可以“固定”寄存器中的某个值吗?我在变量定义中添加了“register”关键字,但生成的汇编代码是相同的。

0 投票
10 回答
12603 浏览

c++ - 是否可以在 C++ 中对 C 结构进行子类化并在 C 代码中使用指向该结构的指针?

这样做是否有副作用:

C代码:

C++ 代码:

extern "C"C++ 代码周围有一个,每个代码都在它自己的编译单元内。

这可以跨编译器移植吗?

0 投票
7 回答
54297 浏览

c++ - GNU 编译器警告“类具有虚函数但非虚析构函数”

我在 C++ 中定义了一个接口,即一个只包含纯虚函数的类。

我想明确禁止接口的用户通过指向接口的指针删除对象,所以我为接口声明了一个受保护的非虚拟析构函数,例如:

GNU 编译器给我一个警告说:

类“ITest”具有虚函数但非虚析构函数

一旦析构函数受到保护,将其设为虚拟或非虚拟有什么区别?

您认为可以安全地忽略或消除此警告吗?

0 投票
2 回答
17189 浏览

gcc - 在 32 位模式下编译 gcc 原子操作时出现链接错误

我有以下程序:

我在多 CPU 64 位 Intel 机器上运行的 Linux 上使用 GCC 4.2.2 编译这个程序:

当我在 64 位模式下编译程序时,它可以正常编译和链接:

当我在 32 位模式下编译它时,我收到以下错误:

虽然我永远不会真正在 32 位处理器上运行,但我确实需要一个 32 位可执行文件,以便可以链接一些 32 位库。

我的两个问题是:

  1. 为什么在 32 位模式下编译时会出现链接错误?

  2. 有没有办法让程序编译和链接,同时仍然能够与 32 位库链接?

0 投票
3 回答
1719 浏览

c++ - GCC 3.4.4 上的 C++ tr1(适用于诺基亚 N810 平板电脑)

如何让 C++ tr1成员(尤其是 shared_ptr,但我们希望函数和绑定以及所有其他成员)与GCC 3.4.4(用于诺基亚N810平板电脑)一起工作。

有人做过吗?尝试过这个?

我们升级到 GCC 4.x 来为这个设备进行交叉编译可能是不可行的(但如果你已经这样做了,我们很想知道)。

可能有很多方法,我想避免其他人遇到的死胡同。

我们试图避免引入 boost,因为它可能是相互依赖的(你引入了一个 boost header,你最终会得到 20 个以上),并且保持代码大小对我们很重要。

谢谢!

0 投票
3 回答
1702 浏览

c++ - 如何通过 C++ 程序发送电子邮件?

如何从 C++ 发送电子邮件?我可以使用一个好的跨平台(MS Windows、Linux 等)库吗?我正在使用 GCC(MS Windows 上的 cygwin)。

0 投票
4 回答
300 浏览

gcc - 如何用谷歌搜索--depend?

我们从第三方供应商处收到的最新生成文件包含带有 --depend 于构建规则结束的规则,所以我想我会在 Google 上查找它,但尽我所能,我无法说服它显示任何具有确切字符的页面 --depend

我试过用引号“--depend”包围它:我试过高级搜索:我试过反斜杠“\-\-depend”(徒劳)希望有某种未发布的正则表达式搜索可用的。

我错过了一些非常明显的东西吗?

请注意,这不是关于 --depend 做什么的问题,我知道,这是关于您如何在 Google 上搜索非常精确、面向程序员的文本的问题。

0 投票
17 回答
428879 浏览

c++ - 如何从 gcc 中的 C/C++ 源代码获取汇编程序输出?

如何做到这一点?

如果我想分析某些东西是如何编译的,我将如何获得发出的汇编代码?

0 投票
6 回答
31768 浏览

gcc - 链接器问题 - 未定义的引用

我的编译器有问题,告诉我有一个“未定义的引用”我想在库中使用的函数。让我分享一些关于这个问题的信息:

  • 我正在使用 gcc for C 进行交叉编译。
  • 我正在调用一个库函数,该函数通过包含的标头访问,该标头包含另一个包含原型的标头。
  • 我已经使用 -I 包含了 headers 目录,并且我确定它已被找到。
  • 我首先创建 .o 文件,然后将它们链接到单独的命令中。

所以我的想法是这可能是我包含库文件的顺序,但我不确定订购它们的正确方法是什么。我尝试在 .o 文件之前和之后包含 headers 文件夹。

一些建议会很棒,也许还有对链接器如何做事的解释。

谢谢!


对答案的回应

  • 没有 .a 库文件,只有 .h 和 .c 在库中,所以 -l 不合适
  • 我对库文件的理解是它只是头文件和源文件的集合,但也许它是从源创建的 .o 文件的集合?!
  • 没有创建库目标文件,也许应该有?是的,似乎我不明白包含和库之间的区别......我会努力的:-)

感谢所有的回复!我学到了很多关于图书馆的知识。我想把所有的回复都作为接受的答案:-)