问题标签 [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 回答
7722 浏览

math - 为什么在 Math.h 中调用函数时出现链接错误?

尝试在 中调用函数时math.h,出现如下链接错误

但我#include <math.h>
正在使用 gcc 并编译如下:

为什么链接器找不到 的定义sqrt

0 投票
7 回答
2832 浏览

c++ - 是否有调试 C++ 宏的良好通用方法?

一般来说,我偶尔会有一系列嵌套的宏,它们的定义中有一些预处理器条件元素。这些调试起来会很痛苦,因为很难直接看到正在执行的实际代码。

不久前,我隐约记得找到了一个编译器 (gcc) 标志来扩展它们,但我在实践中遇到了麻烦。

0 投票
3 回答
10777 浏览

c++ - GCC 使用 __stdcall 编译 dll

当我们在 Visual Studio 2008 中使用 __stdcall 编译 dll 时,dll 中的编译函数名称是。

函数名

虽然当我们使用 GCC 使用 wx-dev-cpp 编译相同的 dll 时,GCC 会附加函数具有的参数数量,所以使用 Dependency walker 的函数的名称看起来像。

FunctionName@numberOfParameters 或 == FunctionName@8

你如何告诉 GCC 编译器从 dll 中的导出符号中删除 @nn?

0 投票
11 回答
8274 浏览

c - 如何模拟内存分配错误

我的 C 应用程序使用第三个库,它们自己管理内存。为了变得健壮,我的应用程序有代码来处理由于缺少可用内存而导致的库函数故障。

我想测试这段代码,为此,我需要模拟由于内存不足而导致的失败。

为此推荐什么工具?我的环境是 Linux/gcc。

0 投票
10 回答
175419 浏览

linux - Linux 内核中可能/不太可能的宏是如何工作的,它们有什么好处?

我一直在研究 Linux 内核的某些部分,发现了这样的调用:

或者

我找到了它们的定义:

我知道它们是为了优化,但它们是如何工作的?使用它们可以减少多少性能/尺寸?至少在瓶颈代码中(当然是在用户空间中)是否值得麻烦(并且可能失去可移植性)。

0 投票
9 回答
43569 浏览

optimization - Intel Atom 的 GCC 优化标志

我正在为 Intel Atom 处理器开发性能关键型应用程序。

这个 CPU 最好的 gcc 优化标志是什么?

0 投票
3 回答
1586 浏览

gcc - 哪个 gcc 开关禁用“逗号的左操作数无效”警告?

它是更大代码库的一部分,它在 gcc 上强制执行 -Werror。此警告是在不应更改的第三方代码中生成的(我实际上知道如何修复它),但我可以禁用特定警告。这次 man gcc 让我失望了,所以请让一些 gcc 高手赐教。TIA。

0 投票
10 回答
54648 浏览

macos - 有没有办法在不安装 Xcode 的情况下在 OSX 中安装 gcc?

我已经用谷歌搜索了它,似乎没有安装 Xcode(至少需要 1.5GB 空间)就无法在 OS X 上安装 gcc。我所需要的只是 gcc 而不是 Xcode 附带的其他垃圾。在这一点上,我将采用任何其他类型的 C 编译器。

我知道我可以简单地安装 Xcode,但这并不重要,因为我既没有原始安装光盘,也没有快速的互联网连接。

那么……有人有什么建议吗?

编辑:对不起,如果我不清楚,但我也需要标题。我目前正在通过 fink 安装 gcc4,它也在下载共享库。我会更新进展。

编辑 2:好的,所以我使用 fink 成功安装了 gcc。但是,它几乎没用:“错误:C 编译器无法创建可执行文件”。谷歌搜索后,我发现没有安装 Apple 的开发者工具是错误的原因。可能是因为我需要所有只能通过 Xcode 获得的库、头文件等。

0 投票
7 回答
10657 浏览

c - 为什么 GCC 不优化结构?

系统要求某些原语与内存中的某些点对齐(整数到 4 的倍数的字节,短到 2 的倍数的字节等)。当然,这些可以优化为在填充中浪费最少的空间。

我的问题是为什么 GCC 不自动执行此操作?是否缺少更明显的启发式(从最大尺寸要求到最小尺寸的顺序变量)?某些代码是否依赖于其结构的物理顺序(这是个好主意)?

我只是问,因为 GCC 在很多方面都经过了超级优化,但在这方面却没有,而且我认为一定有一些相对酷的解释(我没有注意到)。

0 投票
5 回答
6698 浏览

assembly - GCC 内联汇编器,混合寄存器大小 (x86)

有谁知道我怎样才能摆脱以下汇编程序警告?

代码是 x86,32 位:

如果我编译它,我会收到以下(非常有效的)警告:

我正在寻找的是一种告诉编译器/汇编器我想要访问 %0 的低 16 位子寄存器的方法。访问字节子寄存器(在本例中为 AL 和 AH)也很高兴知道。

我已经选择了“q”修饰符,所以编译器被迫使用 EAX、EBX、ECX 或 EDX。我已经确保编译器必须选择一个具有子寄存器的寄存器。

我知道我可以强制 asm 代码使用特定的寄存器(及其子寄存器),但我想将寄存器分配工作留给编译器。