在g++中包含额外的链接器标志有什么害处吗?

Is there any harm in including additional linker flags in g++?

本文关键字:什么 标志 g++ 包含额 链接      更新时间:2023-10-16

我正在code::blocks中编写c++代码,我正在设置构建标志和链接器选项。我不想经常改变设置,所以我一直在编译一切(c++)与g++ -Wall -o "%e" "%f" -lSDL -lSDL_image

甚至是没有SDL代码的东西。我没有看到任何故障,所以我只是想知道,是否有任何理由我不应该与这些标志总是在编译。

您可以排除我将编译SDL不支持的体系结构的情况,例如8位avr等。除了架构不兼容之外,这样做还有其他风险吗?

当gcc执行链接阶段时,它将从库中搜索缺失的符号。如果库中没有使用任何符号,则可执行文件中不会提及该库。

可以很容易地在Linux中进行测试。我编译了一个简单的c++程序,将随机库添加到编译命令中,由于我实际上没有使用它们,因此不需要它们,因此没有链接到二进制文件中。

所以实际上它可能只会导致编译速度的减慢,或者可能会意外地在库中找到一些你不想包含的符号,但它不会导致任何其他问题。