C++ 如果两者之间没有任何引用关系,是否可打包在一起呢,这样编译打包在一起是否有意义?

请问下,C++ 有两个文件,编译为一个可执行文件:

g++ testspeaker.cpp speaker.cpp -o testspeaker

请问什么情况下,才使用上面的方式进行编译呢?
比如:testspeaker.cpp 有 引用 speaker.cpp 吗?
如果两者之间没有任何引用关系,是否可打包在一起呢,这样打包在一起是否有意义?

阅读 1.9k
2 个回答
如果两者之间没有任何引用关系,是否可打包在一起呢,这样打包在一起是否有意义?

可以。但是没有意义。会增加文件大小。

有编译链接选项可以把没用的符号删掉,加上的话可能某一个文件的内容就被完全删除了。

把两个或多个没关系的 cpp 文件打包在一起,通常是库文件的做法。
lib 文件因为可能被多个应用所公用,所以会把所有可能被用到的子程序打包在一起。
如果是可执行文件,现代编译器通常会把没用到的代码优化掉。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题