问题标签 [g++]

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 投票
9 回答
8167 浏览

c++ - C++ 函数模板特化的可见性

假设我fileA.h声明了一个classA带有模板函数的类SomeFunc<T>()。该函数直接在头文件中实现(与模板函数一样)。现在,我在(即不在头文件中)添加了SomeFunc()(如 for SomeFunc<int>())的专门实现。fileA.C

如果我现在SomeFunc<int>()从其他代码(可能也来自另一个库)调用,它会调用通用版本还是专业化版本?

我现在有这个问题,类和函数存在于两个应用程序使用的库中。一个应用程序正确地使用了专业化,而另一个应用程序使用了通用形式(这会导致稍后出现运行时问题)。为什么有区别?这可能与链接器选项等有关吗?这是在 Linux 上,使用 g++ 4.1.2。

0 投票
2 回答
16291 浏览

c++ - GCC 3.x 和 4.x 中 C++ 对象中的 VTable 布局和 VTable 指针位置是什么?

我正在寻找 VTable 结构、顺序和内容的详细信息,以及 vtable 指针在对象中的位置。

理想情况下,这将涵盖单继承、多继承和虚拟继承。

对外部文档的引用也将不胜感激

GCC 4.0x 类布局的文档在这里,Itanium 和更广泛的 GNU、ABI 布局文档在这里

0 投票
5 回答
16343 浏览

c++ - 在 C++ 中链接“静态”方法的问题

我想调用在不同文件中定义的 CPP 类的一些“静态”方法,但我遇到了链接问题。我创建了一个重新创建我的问题的测试用例,它的代码如下。

(我对 C++ 完全陌生,我来自 Java 背景,对 C 有点熟悉。)

当我尝试编译时,出现以下错误:

但是,如果我删除 main.cpp 中的类声明并将其替换为 #include "CppClass.cpp",它就可以正常工作。基本上,我想将这些声明放在一个单独的 .h 文件中并使用它。我错过了什么吗?

谢谢您的帮助。

0 投票
3 回答
1678 浏览

gcc - 从 g++/gcc 3.2.3 到 4.2.4 的性能改进

我们一直在研究 g++ 版本 3.2.3 和 4.2.4。在 4.2.4 中,我们的一些代码库的性能改进非常显着。

我已经尝试搜索gcc buzilla 数据库以找到有关哪些错误可能有如此显着改进的提示,但我没有找到任何作为候选者脱颖而出的单个错误。

这些改进是许多慢慢产生影响的小变化的结果吗?或者有没有说可能产生影响的前 5 项改进?

对于某些背景,我们的代码库确实很好地利用了 STL 容器和算法,以及诸如“inline”关键字之类的 C++ 特性。

0 投票
4 回答
1615 浏览

c++ - 将 C++ 代码移植到 MacOS 有哪些建议?

对于即将到来的项目,计划将在 Windows 和 Linux 上编译的现有 C++ 代码移植到 MacOS(豹)。该软件是命令行应用程序,但可能会计划一个 GUI 前端。MacOS 使用 g++ 编译器。通过使用与 Linux 相同的编译器,似乎不会有任何问题,但总会有。

港口期间有什么建议或问题需要注意吗?

0 投票
10 回答
545801 浏览

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

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

0 投票
3 回答
1535 浏览

c++ - 从子类访问受保护的成员:gcc vs msvc

在 Visual C++ 中,我可以执行以下操作:

如果我尝试在 g++ 中编译它,我会得到一个错误。我必须这样做:

我不应该在标准 C++ 中做前者吗?还是 gcc 配置错误导致我出错?

0 投票
3 回答
2283 浏览

qt - Qt 应用程序严重失败

我正在尝试将 Qt 应用程序与其库链接,并且链接器 (MinGW) 会发出数百行如下所示的内容,我不确定如何继续。

0 投票
4 回答
32403 浏览

c++ - 链接上未定义的符号 ___gxx_personality_v0

我一直在用这个命令行构建这个未定义的符号:

test.cpp 很简单,应该可以正常构建。什么是交易?

0 投票
2 回答
4230 浏览

c++ - GCC 和 ld 找不到导出的符号……但它们在那里

我有一个 C++ 库和一个 C++ 应用程序,试图使用从库中导出的函数和类。该库构建良好,应用程序编译但无法链接。我得到的错误遵循这种形式:

app-source-file.cpp:(.text+0x2fdb): undefined reference to `lib-namespace::GetStatusStr(int)'

链接器似乎可以很好地解析库中的类,但是自由函数和导出的数据(如余弦查找表)总是会导致上述错误。

我使用的是 Ubuntu 8.04 (Hardy),它是最新的 Ubuntu 软件包。

链接库的命令是(删除了其他库):

链接应用程序的命令是(删除了其他库):

最后,似乎(据我所知)有问题的符号正在正确导出: