g++ 相关问题

g ++是GNU编译器集合(gcc)的C ++前端。

C++17:g++ 版本 8.5 似乎无法正确生成无符号 64 位伪随机整数

我正在使用以下g++版本在Rocky Linux环境中编译C++程序: gcc 版本 8.5.0 20210514(红帽 8.5.0-3)(GCC) 我按如下方式调用 g++: g++ -std=c++17 -Wall -Wpedan...

回答 1 投票 0

编译模板化类定义时出现链接器错误

我正在尝试编译一个使用模板化 Bag 类的小程序。其组织方式如下: //主.cpp #包括 #包括 #include“bag.h” 在...

回答 1 投票 0

VS2022“导入std.core”需要安装什么才能编译?

当我使用以下内容时: 导入标准核心; 我收到错误: 错误 C1011 无法找到标准模块接口。您是否在 VS 安装程序中安装了 C++ 模块功能的库部分? 我切...

回答 2 投票 0

g++ 在 std::vector 的简单副本上出现错误 stringop-overflow

如果我使用任何 -O 标志,以下简单的 C++ 代码将无法使用 g++ 进行编译。我不明白为什么。 最小且可重现的示例: #包括 使用 A = std::vector; ...

回答 1 投票 0

生成的解析器中出现错误“错误:没有声明匹配”

我的C++文件中的这个函数正在与antlr交互: antlr4::tree::ParseTree* getTree(std::string caDefinition){ antlr4::ANTLRInputStream 输入(caDefinition); CAsyntaxLexer 词法分析器(&input); 一个...

回答 1 投票 0

让g++生成一个可以使用多核的程序?

我有一个带有多个for循环的C++程序;每个运行大约 500 万次迭代。是否有任何命令可以与 g++ 一起使用来使用多核生成生成的 .exe? IE。做第一个...

回答 5 投票 0

如何在普通 C 代码中包含 C++ 库和头文件

我正在尝试在 C 代码中调用 C++ 库(在 Bessel 函数上)。但是,我不确定如何将 cmath 包含到 math.h 中。大多数示例都是关于如何将 C 代码包含到 C++ 中,但我正在尝试...

回答 2 投票 0

flex扫描器读取失败,用gcc编译

编译整个源代码后,在链接时出现此错误: /x86_64-pc-linux-gnu/bin/ld:Flex 扫描仪读取失败 有什么指示可能出问题以及在哪里寻找它吗?

回答 2 投票 0

链接选项不兼容 - 在命令中的任何位置都看不到选项

g++ -Wl,-rpath,/usr/local/lib -o /path-to/executable {.o 文件列表} -L/usr/X11R6/lib -L/usr/local/lib -lQtGui - L/usr/local/lib -L/usr/openwin/lib -lSM -lICE -lXext -lX11 -lresolv -lsocket -lnsl -

回答 2 投票 0

g++ 和 clang++ 中的宏扩展

#包括 #define DOUBLE1(x) x + x #define DOUBLE2(x) 2 * x int main() { 整数a=2; std::cout << DOUBLE2(a++) << " " << DOUBLE1(++a) << std...

回答 1 投票 0

为什么在头文件中定义函数会产生多个定义错误,而不是类?

这个问题基于这两个 stackoverflow 帖子: 头文件中的多个定义 命名空间函数的多重定义 问题是:为什么多重定义不会出错

回答 3 投票 0

clang 和 g++ 在链接共享库(其中存在已在本地对象文件中定义的符号)方面的区别

我在处理最近开始从事的 C++ 项目时遇到了一个问题。该项目的组织如下(我无法更改): 代码的核心部分位于中央,

回答 1 投票 0

在 const 引用中使用静态 constexpr 变量时是否有可能产生错误?

我的头文件库需要在 C++14 (g++) 中定义浮点常量。该库包含以下语句: struct A // 带常量的 POD { 静态 constexpr float a{0.1f}; // 更多内容...

回答 1 投票 0

SFINAE 转换函数的奇怪警告[重复]

这是我的示例代码: #包括 模板 结构体S{ //#1 // 模板 > // 运算符 S 这是我的示例代码: #include <type_traits> template <bool B> struct S { // #1 // template <bool C = B, class = std::enable_if_t<!C>> // operator S<true>() const { return {}; } // #2 // operator S<true>() const { return {}; } }; int main() { S<true> b1; S<false> b2; } 使用 g++ 编译时(https://godbolt.org/z/P46qE8EGG),无论启用选项 #1、选项 #2 还是两者都启用,我都不会收到警告。当我启用 #2 时,我希望收到一个警告,指出它是一个自转换函数,但也许 g++ 没有这样的警告。 真正的问题是用 clang 编译时。仅当我启用 #1 时,我才会收到以下警告: 错误:将“S”转换为自身的转换函数将永远不会被使用[-Werror,-Wclass-conversion] 启用 #2 不会触发此警告,禁用 b1 或 b2 的实例化也不会阻止此警告。到底是怎么回事?这是 clang 的错误吗? 编辑:我特别指的是为什么#1产生警告。其他信息旨在展示我尝试将问题缩小到更小的工作示例 当我启用 #2 时,我希望收到一个警告,表明它是一个自转换函数,但也许 g++ 没有这样的警告。 正确,人们可以期待编译器警告(非标准最佳实践),但不能保证某个编译器会提供它们。 启用 #2 不会触发此警告,禁用 b1 或 b2 的实例化也不会阻止此警告。到底是怎么回事?这是 clang 的错误吗? Clang 不警告 #2 是正确的,因为它可能会被调用,在删除定义的示例中更容易显示: template <bool B> struct S { // #2 operator S<true>() const = delete; }; int main() { S<false> const b1; S<true> b2 = b1; // error: call to a deleted function } 为什么?由于隐式复制构造函数复制 S<true> -> S<true> S<false> -> S<false> 然而 S<false> 到 S<true> 并不是相同意义上的复制操作。 当“copy from”类为S<false>时,模板构造函数也存在,因此Clang确实不正确警告该函数永远不会被使用: #include <type_traits> template <bool B> struct S { // #1 template <bool C = B, class = std::enable_if_t<!C>> operator S<true>() const = delete; }; int main() { S<false> const b1; S<true> b2 = b1; // error: delete function }

回答 1 投票 0

GCC 转储预处理器定义

gcc/g++ 有没有办法从命令行转储其默认预处理器定义? 我指的是 __GNUC__、__STDC__ 等。

回答 6 投票 0

更改Makefile标志时如何强制重新编译?

我正在编译一些具有依赖关系的项目,因此我不必每次都重新编译,但是当我将 -Dsome_flags 添加到 CFLAGS 时,它不会重新编译。 出发地:$(CPPS) $(CC) $(CFLAGS) $(INC) -...

回答 4 投票 0

Windows Visual Studio 中的字符串函数在 Ubuntu(Linux Mint) 上通过 g++ 编译时似乎不起作用

我正在通过 Visual Studio(Windows)为我的班级做一个项目,因为我更喜欢编译器,但是当我将代码复制/粘贴到 ubuntu linux(linux mint cinnamon)并运行 g++ 时

回答 2 投票 0

C++ G++ 错误:[-Werror=数组边界]

使用 make install 构建和安装 C++ 项目的二进制文件时,出现以下错误: > 编译算法/fba2-inst6.cpp [qkd_commsys_simulator-omp-mpi-gmp: 发布] > 在...

回答 1 投票 0

为什么 gdb 在查询分配给包含控制字符的 char 数组的字符串时会转义字符?

我注意到,当将 std::string_view (或 std::string)分配给包含控制字符(例如 ' ' [标题开始])的字符数组时,gdb 将用

回答 1 投票 0

当分配的 char 数组包含控制字符时,为什么 std::string_view (和 std::string)会转义八进制字符?

我注意到,当将 std::string_view (或 std::string)分配给包含控制字符(例如 ' ' [标题开始])的字符数组时,该 string_view 将进行八进制转义

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.