g++相关内容

在GDB中中断失败断言的正确方法是什么?

我正在尝试捕获程序中失败的断言。我正在使用一个直接调用Assert()的库,而不是一个定制函数或宏,目前我正试图在这个库中跟踪几个与移植相关的错误。所有涉及的内容都已在g++中使用调试符号进行了编译。 我所找到的最佳解决方案是在Assert的file:行中使用Assert表达式的条件断开。这允许在断言失败之前停止,但这是一个可怕的解决方案。它需要为每个可能失败的断言进行特殊设置,在我的IDE ..
发布时间:2022-08-26 11:28:29 C/C++开发

如何使用objump将源代码交织到高度优化的目标文件中?

我得到了一个高度优化的编译的C++目标文件(用g++编译,指定-O3 -g -march=amdfam10 -Wall),带有调试信息。 我正在使用objdump -S "objname"。 不幸的是,交错源代码似乎不起作用,因为有时我看到同一组行(不只是一行)多次重复,而且不只是一个代码行,而是多个代码行,然后是只一条装配线,然后是其他四分之三的源代码行,没有太大意义。 例如,我看 ..
发布时间:2022-07-21 19:35:07 C/C++开发

未定义对新运算符的引用

在我开始编写PSP自制应用程序之前,我从未见过这个链接器错误。无论如何,我正在制作一个快板游戏,在这种情况下我需要发射炮弹或导弹,我需要使用动态和通用的数组。但是我的链接器抱怨有一个未定义的对新操作符的引用。下面是完整的源代码、Makefile和错误详细信息。 错误详细信息: 1>------ Build started: Project: PSP Asteroids, Configu ..
发布时间:2022-07-16 22:55:41 C/C++开发

如何在c++20中使用g++中的模块?

我阅读了此链接https://gcc.gnu.org/wiki/cxx-modules,并尝试从此网站复制以下示例。我已经知道这个编译器部分支持模块系统。(注意:我使用的是Windows) // hello.cc module; #include #include export module hello; export void greete ..
发布时间:2022-05-17 10:06:00 C/C++开发

无法让CMAKE编译项目

以下是我收到的错误: -- Building for: NMake Makefiles -- The C compiler identification is GNU 4.8.1 -- The CXX compiler identification is GNU 4.8.1 -- Check for working C compiler: C:/MinGW/bin/gcc.exe CMake ..
发布时间:2022-03-12 20:49:11 C/C++开发

C++:对';CYourClass::Method()'的未定义引用;

我正在努力找出类继承中代码的问题。我找了很多地方,但似乎找不到正确的答案。在此之前,我在修复许多错误方面取得了一些进展,但还没有完全完成。 我遇到的主要问题是在我的文件中的许多实例中对方法或构造函数的未定义引用。我确信我可能只是在某个地方遗漏了一些非常简单的东西,但是作为C++的新手,我很难准确地指出问题所在。 下面是我的代码的文件: dog.h #ifndef DOG_H # ..
发布时间:2022-03-12 17:52:52 C/C++开发

C++delete操作符如何找到多态对象的内存位置?

我想知道当为DELETE运算符提供的基类指针与对象的实际内存位置不同时,它是如何计算出需要释放的内存位置的。 我想在我自己的自定义分配器/释放分配器中复制此行为。 请考虑以下层次结构: struct A { unsigned a; virtual ~A() { } }; struct B { unsigned b; virtual ~B() { ..
发布时间:2022-02-24 21:02:10 C/C++开发

MacOS上的C++11警告

我的Mac上有clang 13.0.0。我正在尝试使用命令 编译一些.cpp文件 g++ file.cpp -o file 但我收到此警告消息: file.cpp:23:26: warning: range-based for loop is a C++11 extension [-Wc++11-extensions] for (const double &e : times ..
发布时间:2022-02-24 21:01:00 C/C++开发

在 docker 镜像中编译时的 mtune 和 march

在 docker 镜像中编译时(即在 dockerfile 中),march 和 mtune 应该设置为什么? 请注意,这不是在正在运行的容器中编译,而是在构建容器时进行编译(例如,在运行映像时从源代码构建工具). 例如,目前当我运行 docker build 并从源代码安装 R 包时,我得到了负载(可能是 g++/gcc/f95 ...): g++ -std=gnu++14 [.. ..
发布时间:2022-01-24 21:13:21 其他开发

在没有外部“C"的情况下在 c++ 中使用 dlsym

我有一个系统,我给用户一个函数原型,用户必须实现它.现在,我使用 g++ 编译该文件并使用 dlopen 和 dlsym 动态加载它以进一步处理它.现在,我在这里阅读: c++ dlopen小方法 要加载 c++ 函数,我们必须在函数之前使用 extern "C".现在,问题是,我不想向用户展示事情是如何工作的.我不想在函数之前显示用户 extern "C". 有什么办法可以避免 ..
发布时间:2022-01-23 21:16:03 C/C++开发

返回类型为 void 的函数末尾是否需要空白返回语句?

关于 SO 的大多数问题都涉及非 void 返回类型,但我们正在为此展开一场激烈的战争,并想了解社区的想法. void DoSomething(){返回;//这个需要吗?} 来自 this 讨论,看起来未定义行为的问题涉及非 void 返回类型的函数.void 返回类型是否具有相同的未定义行为,还是仅在非 void 返回函数中? 我担心的是,这最终会成为一种糟糕的编码风格,没有任何理由可 ..
发布时间:2022-01-23 21:15:54 C/C++开发