g++相关内容

臃肿的 EXE 大小,以及与 Qt/MingW 的不需要的依赖关系

我正在尝试弄清楚如何缩小在最新 QT SDK (4.8.2)(基于 mingw/g++)下编译的 EXE 文件的大小.我正在开发一个香草 c++ 控制台应用程序,它有一个简单的循环并且只有#includes iostream,当我注意到它生成的 exe 大约为 465kb 时;比他们应该的要大得多!注释掉所有流的东西会使它降低到预期的 5kb 范围(尽管剩余的代码大部分都是死的).这似乎根本不对, ..
发布时间:2022-01-23 21:15:22 C/C++开发

C++:什么 GNU G++ 参数?

可能重复: C/C++ 编译器的最佳编译器警告级别? GCC 有数以千计的选项来添加更多警告;我希望 -Wall -Wextra -pedantic 包含所有有用的,但现在我遇到了 -Woverloaded-virtual 这对我来说真的很好. 您还使用或推荐哪些其他 G++ 参数? 解决方案 不是完全相同的类别,但我总是用 -Werror 编译以将警告标记为错误.很有用. ..
发布时间:2022-01-23 21:15:13 C/C++开发

如何在 Ubuntu 上安装 g++ 4.4?

有一个 Debian g++-4.4 包,但它不是 Ubuntu.网络上有太多被系统破坏的恐怖故事. 如何在 Ubuntu 上安装 g++ 4.4? 解决方案 看看这个 URL.我从那里安装了 gcc-4.4(和 g++-4.4),这似乎是实际上将 gcc-4.4 放入 ubuntu .deb 的最官方的黑客组织.到现在运行没有问题: https://launchpad.net ..
发布时间:2022-01-23 21:14:51 其他开发

为某些类禁用 RTTI

我有一个 C++ 翻译单元,我需要为其中的两个类禁用 RTTI,但仅此而已.有没有类似 #pragma rtti(off) 或者我可以使用的东西? 我只需要为该类禁用 RTTI.我不 throw 或 catch 或 dynamic_cast 或任何此类,所以我根本不需要 RTTI.它的方法的实现当然需要在 RTTI 上编译,因为它们确实可以抛出异常,我需要抑制的只是这个 typeinfo 对 ..
发布时间:2022-01-23 21:14:41 C/C++开发

GCC 命令行参数挑剔

GCC 可以对它接受参数的顺序非常挑剔: # 有效.g++ Foo.cpp -L.-一世.-lBar -o Foo# 链接器错误.g++ -o Foo -I.-L.-lBar Foo.cpp 具体来说,命令行选项的排序要求是什么? 解决方案 库是根据需要的符号按需加载的,因此提供其他东西所需符号的库必须遵循其他东西.这是历史性的;可以说,现代系统应该自动解析符号,明智地处理循环(这就是 ..
发布时间:2022-01-23 21:14:30 其他开发

C++ 标准:多集中意外的 const_iterator

我最近遇到了一个奇怪的问题,在迭代多重集时我会得到一个 const_iterator 而不是预期的 iterator.结果证明这对 MSVC 来说不是问题,但 g++ 给了我一个错误: 错误:初始化无效'myPtr&' 类型的引用从'const 类型的表达式boost::shared_ptr' 相关代码: typedef std::multiset;我的清单;我的清单 _mystuf ..
发布时间:2022-01-23 21:14:14 C/C++开发

double 和 ffast-math 上的自动矢量化

为什么必须使用 -ffast-math 和 g++ 来实现使用 doubles 的循环向量化?我不喜欢 -ffast-math 因为我不想失去精度. 解决方案 使用 -ffast-math 不一定会丢失精度.它只影响NaN、Inf等的处理以及操作执行的顺序. 如果您不希望 GCC 重新排序或简化计算的特定代码段,您可以使用 asm 语句将变量标记为正在使用. 例如,以下代码对 ..
发布时间:2022-01-23 21:14:08 其他开发

g++: const 丢弃限定符

为什么我会收到 discard qualifiers 错误: customExc.cpp:在成员函数‘virtual const char* CustomException::what() const’中:customExc.cpp:错误:将“const CustomException"作为“char customException::code()"的“this"参数传递会丢弃限定符 关于以下 ..
发布时间:2022-01-23 21:13:58 C/C++开发

如何在 g++ 中使用 C++ 20

我正在尝试访问 std::popcount,但它似乎是 仅在 C++ 20 中存在. 当我尝试使用 g++ -std=c++20 main.cpp 进行编译时,它显示 g++: error: unrecognized command line option '-std=c++20';你是说'-std=c++03' 我如何告诉 g++ 使用 c++ 20? 我使用的是 Ubuntu ..
发布时间:2022-01-23 21:13:49 C/C++开发

如何在 C++ 中编码大型复杂的常量数据结构

过去,我使用 gcc 的 C99 风格的复合文字扩展C++ 在代码中编码嵌套的常量数据结构.这是一个例子: #include 使用命名空间标准;结构树{常量字符*名称;常量树*左;常量树*对;};常量树 *常量树 = (树 []) {"top",//名称(树[]) {“剩下",0,0},(树[]) {“对",0,0}};静态无效转储(常量树*树){如果(!树){cout 左) ..
发布时间:2022-01-23 21:13:42 C/C++开发

调用临时对象的方法是否安全?

我有一个返回 char* 的函数.由于我必须连接一些字符串,所以我写了以下行: std::string other_text;//...func(("文本" + other_text).c_str()); 我知道我可以避免命名我想使用的字符串的问题.我只是想借此机会提出一个更笼统的问题:调用临时变量的方法是否安全?是否符合标准? 解决方案 调用临时变量的方法是安全的,但返回临时变量的c ..
发布时间:2022-01-23 21:13:32 C/C++开发

如何使用 GCC 4.8 配置 libstdc++?

不久前,我决定升级到 GCC 4.8,以便尽早开始使用一些 c++11 功能.不过,我有点走神了,直到几天前的一个项目才真正使用任何新功能(新编译器似乎工作正常,但这可能只是因为我没有使用任何新功能.) 在这个新项目中,当我使用 =std=c++11 标志编译时,我没有遇到任何问题.但是,在运行时,我收到错误: ./main:/usr/lib/i386-linux-gnu/libstd ..
发布时间:2022-01-23 21:13:25 C/C++开发

lambda 表达式的可变参数模板

使用 g++ 的正确方法是什么: 模板 空隙 g (F f);模板 解决方案 我想你也需要在捕获列表中展开pack a,像这样: 模板 无效 f (A ... a) {g ([&, a...] () { h (a...); });} 这是来自 C++0x 最终委员会草案,第 5.1.2.23 节的相关文本: 捕获后跟省略号是包扩展(14.5. ..
发布时间:2022-01-23 21:13:16 C/C++开发

使用 .natvis 文件在 VS Code 中可视化 C++ 对象

根据此链接,.natvis 文件可用于可视化原生对象.具体来说,我希望能够使用 这个 .natvis 文件. 但是,上面的链接不包含有关如何在 VS Code 中实际使用 .natvis 文件的任何信息.是否可以使用自定义 .natvis 文件? 这是我的launch.json文件供参考: {//使用 IntelliSense 了解可能的属性.//悬停查看现有属性的描述.//更多信息 ..
发布时间:2022-01-23 21:12:38 C/C++开发

Cmake 不尊重 -D CMAKE_CXX_COMPILER=g++

我正在尝试强制 cmake 使用 g++ 构建我的 cpp 代码,因为默认情况下它使用 clang.所以我使用: cmake -D CMAKE_CXX_COMPILER=g++ ../src/CMakeLists.txt 之后 cmake 检查 gcc 和 g++ (成功),但仍然 make VERBOSE=1 产量 /usr/bin/c++ -o CMakeFiles/trial_cpp.di ..
发布时间:2022-01-23 21:12:30 C/C++开发

Visual Studio Code 找不到我的 MinGW-w64 的 g++ 命令

Visual Studio Code 找不到我的 MinGW 的 g++ 命令(顺便说一句,intelliSense 没有问题,因为我已经正确设置了 c_cpp_propertites.json).任何的想法?在此先感谢,以下是输出: 执行任务:g++ -g helloworld.cpp g++ : 术语“g++"未被识别为 cmdlet、函数、脚本文件或可运行程序的名称.检查名称的拼 ..
发布时间:2022-01-23 21:12:21 其他开发