C++ 静态库的交叉优化

C++ 静态库的交叉优化,c++,visual-studio,gcc,static-libraries,lto,C++,Visual Studio,Gcc,Static Libraries,Lto,链接时间优化通常通过将一些IR放入目标文件而不是实际的机器代码来实现。因此,在处理静态库时,它只是这些IR文件的集合,每次使用它的代码被更改时,都必须执行LTO。 如果您构建一个共享库,那么LTO只执行一次,并且dll中的代码得到了充分优化 在处理静态库时,是否可以跨翻译单元进行一些优化?我知道这与你不能做任何完整的程序假设不同,但是否可以做一些基本的事情,比如在标题中没有定义的内联setter/getter?我想唯一接近这一点的是unity builds。但是这些可能会导致从库中引入更多的代码

链接时间优化通常通过将一些IR放入目标文件而不是实际的机器代码来实现。因此,在处理静态库时,它只是这些IR文件的集合,每次使用它的代码被更改时,都必须执行LTO。 如果您构建一个共享库,那么LTO只执行一次,并且dll中的代码得到了充分优化


在处理静态库时,是否可以跨翻译单元进行一些优化?我知道这与你不能做任何完整的程序假设不同,但是否可以做一些基本的事情,比如在标题中没有定义的内联setter/getter?

我想唯一接近这一点的是unity builds。但是这些可能会导致从库中引入更多的代码。