【发布时间】:2013-12-19 15:49:31
【问题描述】:
据我所知,不可能在 lib 文件中将函数声明为“内联”并将该函数“神奇地内联”到另一个项目的调用者函数中(因为链接与编译不同,后者之前发生过)。
当多个函数(在多个库中)具有相同声明但定义不同时,我如何内联函数?
例如
obj1.lib
void function1() { printf("Hi"); }
obj2.lib
void function1() {printf("whatsup?"); }
main.cpp
void function1();
int main()
{
function1(); // I'd like to be able to inline this, I can steer the linking against obj1 or obj2, but I can't inline this one
}
【问题讨论】:
-
你的意思是内联优化意义上的吗?您需要打开链接时间优化,在 GCC 中是
-flto,MSVC++ 称为全程序优化。这不能保证内联,但至少可以实现。
标签: c++ compilation linker static-libraries inline