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

时间:2015-10-27 13:39:20

标签: c++ linker g++

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

甚至包含零sdl代码的东西。我没有看到任何故障,所以我只是想知道,有什么理由我不应该总是打开这些标志编译。

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

1 个答案:

答案 0 :(得分:2)

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

您可以轻松地在Linux中测试它。我编译了一个简单的C ++程序,将随机库添加到编译命令中,因为我实际上没有使用它们,所以不需要它们,因此不会链接到二进制文件中。

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