在g++中包含额外的链接器标志有什么害处吗?
Is there any harm in including additional linker flags in g++?
我正在code::blocks中编写c++代码,我正在设置构建标志和链接器选项。我不想经常改变设置,所以我一直在编译一切(c++)与g++ -Wall -o "%e" "%f" -lSDL -lSDL_image
甚至是没有SDL代码的东西。我没有看到任何故障,所以我只是想知道,是否有任何理由我不应该与这些标志总是在编译。
您可以排除我将编译SDL不支持的体系结构的情况,例如8位avr等。除了架构不兼容之外,这样做还有其他风险吗?
当gcc执行链接阶段时,它将从库中搜索缺失的符号。如果库中没有使用任何符号,则可执行文件中不会提及该库。
可以很容易地在Linux中进行测试。我编译了一个简单的c++程序,将随机库添加到编译命令中,由于我实际上没有使用它们,因此不需要它们,因此没有链接到二进制文件中。
所以实际上它可能只会导致编译速度的减慢,或者可能会意外地在库中找到一些你不想包含的符号,但它不会导致任何其他问题。
相关文章:
- -Wlifetime 标志的目的是什么?
- 标志 |= f == s[i],这个语句会做什么?
- 可以在 macOS 上启用的最低支持的 SSE 标志是什么?
- Windows(Visual Studio)中的-fpermssive标志的替代方案是什么
- 什么时候关闭__strict_ansi__标志是不安全的
- ms-extensions标志对gcc到底有什么作用?
- 链接标志对静态库意味着什么
- printf 的长度修饰符标志有什么意义?
- 用Accept4()设置SOCK_CLOEXEC标志的目的是什么?
- "-Bdynamic"编译标志有什么作用?
- 在 C++ 中,我可以将什么用作 int 数组中的标志
- 编译器在程序集中优化代码时会做什么?即O2标志
- 在 g++ 中生成 "-L" 和 -rpath 标志的等效函数是什么
- 解码像 FAST 这样的数据协议的快速方法是什么,其中数据以字节为单位编码,并将位作为存在标志
- 什么是建议的一组编译器标志,以帮助减少错误
- 什么是-D编译器标志C++(clang,GNU,MSVC)
- 我应该使用什么标志来强制执行一个好的C++11样式
- g++的json精神链接器标志是什么
- 在g++中包含额外的链接器标志有什么害处吗?
- 编译标志-static对gcc真正意味着什么