4

好的,解释我的问题的最佳方法是通过 2 个示例:

示例 1:

您已经为自己创建了一个框架或某种称为 MyLibrary 的引擎,并且您已经构建了一个具有最大优化选项的.lib。现在您包含标题并将.lib链接到一个名为 MyImplementation 的新项目中。该项目使用了大部分MyLibrary 的功能,完成后,您构建项目(再次进行最大优化)。

示例 2:

同样,您拥有相同的库,但不是构建它,而是将其保持开源。然后您制作相同的 MyProject,包含标题并构建 MyProject,并启用最大优化。

那么,示例 2会运行得更快吗,因为编译器可以访问整个源代码(框架/引擎 + 您使用它的项目)?

4

1 回答 1

2

静态库是预编译的,这意味着任何进一步的优化都取决于链接器。如今,链接器可以获得很大的性能提升,但通常最好的结果来自配置文件引导优化,这确实需要特殊的编译器设置来引导配置文件。最好将项目开源(除非您正在保护知识产权),因为这样开发人员就可以为他们的平台和编译器编译项目,更不用说没有源代码几乎不可能进行调试。

于 2012-11-03T23:37:30.310 回答