g++相关内容

使用 g++ 编译器打印 C++ 对象的布局

有没有办法使用 g++ 编译器或任何其他方式打印 C++ 对象的布局.一个简化的例子(假设 int 占用 4 个字节) A 类{诠释一个;};B类:公共A{诠释 b;} 所以输出将是 A-0 4+ 一个 +乙-0 4 8+ A.a + b + 了解对象的布局会很有用(在我的例子中是虚拟机代码). 提前致谢. 问候,扎西尔 解决方案 看手册页,-fdump-class-h ..
发布时间:2022-01-23 20:40:53 C/C++开发

在 g++ 中使用 nullptr 需要包含哪些头文件?

我正在使用 g++ 4.4.1 并想使用 nullptr,但我无法找到需要包含的头文件.它似乎也不是关键字,因为我使用它的尝试被拒绝为 错误:'nullptr' 未在此范围内声明 解决方案 GCC 4.4.1 不支持 nullptr. 在 GCC 4.6.0 中添加了对 nullptr 的支持:http://gcc.gnu.org/gcc-4.6/changes.html 改进了 ..
发布时间:2022-01-23 20:40:27 其他开发

将 C++ 目标文件从 linux .o 转换为 Windows .obj

如果这听起来很疯狂,我很抱歉.无论如何我可以将从 g++ 编译器获得的 .o 文件转换为与 Visual Studio 兼容的 *obj. 这个 是我考虑进行此转换的原因. 解决方案 不,没有办法,尤其是 .o 文件不是在 Linux 上使用交叉编译器编译的.无论如何,这听起来像是解决单个链接错误的一种非常奇怪的方法. ..
发布时间:2022-01-23 20:39:32 C/C++开发

如何让 gcc 为所有符号名称添加前缀

我知道过去有一个选项 -fprefix-function-name 可以为所有生成的符号添加前缀,它似乎不再是 gcc 的一部分.有没有其他方法可以做到这一点? 解决方案 相信这个答案会给你解决方案. 简而言之,您可以像这样使用 objcopy 在现有库中为符号添加前缀: objcopy --prefix-symbols=foo_ foo.o ..
发布时间:2022-01-23 20:39:24 C/C++开发

如何编译目录中的所有 cpp 文件?

我在多个文件夹中有多个源文件.有没有一种方法可以一次性编译所有文件而无需命名? 我知道我可以说 g++ -o out *.cpp 但是当我尝试时 g++ -o out *.cpp 文件夹/*.cpp 我收到一个错误. 这样做的正确方法是什么?我知道使用 makefile 是可能的,但可以直接使用 g++ 来完成吗? 解决方案 通过指定 folder/*.cpp,您是在告 ..
发布时间:2022-01-23 20:39:09 其他开发

我可以使用相同的名称为周围范围内的类型声明成员类型别名吗?

出于元编程目的,我希望结构包含另一个类型的类型别名: struct Foo {};结构 WithNestedTypeAlias {使用 Foo = Foo;}; 然后我可以在模板等中执行 WithNestedTypeAlias::Foo 之类的操作. 据我了解,这种类型别名是有效的,因为它不会改变 Foo 类型的含义.Clang 愉快地编译了这个. 但是,GCC 抱怨: test ..
发布时间:2022-01-23 20:38:40 C/C++开发

如果我抛出一个字符串文字,我应该捕获什么类型?

我正在使用 Linux 下的 g++ 在 C++ 中编写一个非常简单的应用程序,并且我试图抛出一些原始字符串作为异常(是的,我知道,这不是一个好习惯). 我有以下代码(简化): int main(){尝试{抛出“未实施";}捕捉(标准::字符串和错误){cerr 我在控制台上得到 Unknow error.但是,如果我将文字字符串静态转换为 std::string 或 char * 它会 ..
发布时间:2022-01-23 20:38:25 服务器开发

在 gcc 和 g++ 中选择消息语言

我在 Linux 上使用 gcc/g++ 并且由于我的安装是西班牙语(我的母语),gcc 在西班牙语.我宁愿用英文阅读它们,原因有两个: 用谷歌搜索英文消息要容易得多. 西班牙语翻译或多或少有点可怕. 有什么帮助吗? 解决方案 尝试更改 LANG 环境变量:http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Environment-Vari ..
发布时间:2022-01-23 20:37:55 其他开发

gcc:-L 和 -l 选项之间的区别以及如何提供库的完整路径

我是 makefile 的新手;所以,如果我的问题是琐碎的,请接受我的道歉. 问题1:-L和-l选项有什么区别. 问题 2:您如何提供某些库的完整路径?例如,以下makefile中提到的“libeng"和“libmx"位于{MATLABROOT}/bin/glnxa64 #MATLAB安装根目录MATLABROOT="/usr/local/MATLAB/R2011b"全部:engde ..
发布时间:2022-01-23 20:37:40 其他开发

如何使用带 CodeBlocks 的 G++ 编译 64 位?

我目前正在创建一个共享库 DLL,但我需要在运行时在 64 位环境中加载它,因此它目前无法正常工作. 如何使用 g++ 从代码块编译 64 位 dll? 我尝试过像 -m64 这样的编译器选项,但似乎都没有. 解决方案 要在windows上使用g++编译64位程序,需要MinGW64.我相信 Code::Blocks 是 MinGW32 自带的. 要将其安装到 Code: ..
发布时间:2022-01-23 20:37:31 C/C++开发

如何使用 g++ 编译 openmp

openmp 编译有问题. 如下代码: #include #include #include #include #include 使用命名空间标准;sem_t 空,满;堆栈stk;无效生产(int i){{sem_wait(&empty);cout 首先,我使用以下代码编译它: g++ ..
发布时间:2022-01-23 20:36:40 C/C++开发

编译器版本号的 gcc 预定义宏是什么?

我在 gcc v3.4.4 中遇到了一个错误,在我的代码中放置一个 #ifdef 以解决该错误,仅适用于该版本的编译器. GCC编译器预处理器预定义的宏来检测编译器的版本号有哪些? 解决方案 来自gnu cpp手册... __GNUC____GNUC_MINOR____GNUC_PATCHLEVEL__ 这些宏由所有使用 C 预处理器的 GNU 编译器定义:C、C++、Objec ..
发布时间:2022-01-23 20:36:01 其他开发

改善 g++ 输出

g++ 有时会产生相当复杂的输出.特别是在处理模板时.是否有任何工具可以使 g++ 输出更具可读性?...至少有一些颜色? 在这里问这个问题可能听起来很傻,但我无法通过谷歌搜索. 解决方案 如果你可以随意切换编译器,试试 clang++.它的错误输出大部分时间都非常清楚,有时它甚至会告诉您如何修复错误.您可以在此处找到 gcc 与 clang 错误输出的比较:http://clang ..
发布时间:2022-01-23 20:35:54 C/C++开发