问题标签 [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 投票
10 回答
12511 浏览

c++ - 如何从库函数中访问 c​​++ 中的 argc 和 argv

我正在编写一个要在 C++ 中动态加载的库。

我想从我的代码中读取 argc 和 argv(出于调试原因),但是我无权访问 main 函数。有什么方法可以检索命令行(Windows 和 Linux 解决方案都很好)。

谢谢,丹

0 投票
2 回答
29282 浏览

c - 错误:初始化元素在加载时不可计算

我有一个采用结构的函数,我试图将其变量存储在数组中:

但是gcc -Wall -ansi -pedantic-errors -Werror我收到以下错误:

初始化元素在加载时不可计算

在我看来很好,有什么问题?

0 投票
5 回答
23060 浏览

c++ - 部分模板专业化的“不完整类型的无效使用”错误

以下代码:

给我错误

(我正在使用 gcc。)我的部分专业化语法是否错误?请注意,如果我删除第二个参数:

然后它可以正确编译。

0 投票
3 回答
5892 浏览

gcc - 是否可以说服 GCC 模仿 fastcall 调用约定?

所以我有一个程序集需要在 Windows 上使用 fastcall 调用约定调用一个函数,但 gcc 不(afaict)支持它。GCC 确实提供了 regparm 属性,但它期望前 3 个参数在 eax、edx 和 ecx 中传递,而 fastcall 期望前两个参数在 ecx 和 edx 中传递。

我只是试图避免有效地复制一些代码路径,所以这并不是很关键,但如果它是可以避免的,那就太好了。

0 投票
5 回答
21110 浏览

multithreading - gcc 中的线程安全原子操作

在我处理的一个程序中,我有很多代码如下:

如果中间指令可以用原子存储代替,这显然是对 CPU 周期的浪费。我知道 gcc 非常有能力做到这一点,但是我还没有找到很多关于这种简单的线程安全原子操作的文档。如何用原子操作替换这组代码?

(我知道简单的存储理论上应该是原子的,但我不想希望优化器不会在过程中的某个时刻搞砸它们的原子性。)

澄清:我不需要它们是严格原子的;这些变量仅用于线程同步。也就是说,线程 B 读取该值,检查它是否正确,如果不正确,它就休眠。所以即使线程 A 更新了值而线程 B 没有意识到它的更新,这也不是问题,因为这只是意味着线程 B 在它不需要的时候休眠了,当它醒来时,值会是正确的。

0 投票
6 回答
69341 浏览

c++ - C++#include和#import的区别

#includeC++和C++有什么区别#import

0 投票
5 回答
8896 浏览

gcc - 如何忽略外部库头文件中的 GCC 编译器“迂腐”错误?

我最近在 make GCC 编译选项中添加了-pedantic-pedantic-errors以帮助清理我的跨平台代码。一切都很好,直到它在外部包含的头文件中发现错误。有没有办法在外部头文件中关闭这个错误检查,即:

继续检查包含的文件,如下所示:

停止检查包含文件,如下所示:

以下是我得到的错误:

0 投票
10 回答
545801 浏览

c++ - g++和gcc有什么区别?

g++和gcc有什么区别?其中哪一个应该用于一般的 c++ 开发?

0 投票
3 回答
1714 浏览

c++ - 为什么 c++ ifstreams 不能从设备读取?

我知道我不应该开始使用 c++ io,整个“类型安全”论点是一个红鲱鱼(有人真的发现这是他们最紧迫的问题之一吗?)。无论如何,我做到了,并发现了 ifstreams 和 FILE*s 以及普通的旧文件描述符之间的一个奇怪区别:ifstreams 无法从设备中读取。谁能想到一个原因?

0 投票
6 回答
1605 浏览

c++ - “您不能转发声明重载运算符&的类”?

在 Google C++ Style Guide 中,有一个关于运算符重载的部分有一个奇怪的声明:

重载也有令人惊讶的后果。例如,您不能转发声明重载的类 operator&

这似乎不正确,而且我找不到任何导致 GCC 出现问题的代码。有谁知道那句话是指什么?