gcc和g++的链接过程有什么区别吗?
我有一个很大的 C 项目,我只是将部分代码转换为 C++。该代码尚未使用标准 C++ 库,因此暂时不需要 -llibstdc++
。
最佳答案
主要区别在于(假设文件被检测为 C++)g++ 设置了与 C++ 标准库链接所需的标志。它还可以设置异常处理。我不会依赖这样一个事实,即仅仅因为您的应用程序不使用标准库,当编译为 C++ 时就不需要它(例如默认异常处理程序)。
编辑:正如评论中所指出的那样,您将遇到静态对象的任何构造函数(确实有效)以及无法获得虚函数表的问题(因此,如果您使用的是 C++ 的这些功能,您仍然需要链接那个图书馆)。
EDIT2:除非您在 C 项目中使用特定于 C99 的代码,否则我实际上只是将整个项目编译为 C++,作为迁移过程的第一步。
关于c++ - 与 gcc 和 g++ 的链接有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6735277/