据我所知,不可能在 lib 文件中将函数声明为“内联”并将该函数“神奇地内联”到另一个项目的调用函数中(因为链接与编译不同,后者发生在之前)。
当有多个函数(在多个库中)具有相同的声明但不同的定义时,我如何内联一个函数?
例如
obj1.lib
void function1() { printf("Hi"); }
obj2.lib
void function1() {printf("whatsup?"); }
主要.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
}
最佳答案
要从对象(或库)文件中内联一个函数,您需要用link-time optimization (LTO) 编译该对象文件。 .参见 Inlining functions from object files了解更多详情。
关于C++ - 如何内联驻留在 .lib 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685950/