一个lib文件,一个对应的.h文件。在一个程序中的不同源文件中,都include了这个.h,并且调用了该lib的同一个方法。比如,有test.h和test.lib,方法为add(int ,int)。lib文件直接加到工程设置中。
AA.cpp:
#include "test.h"
AA::AA()
{
add(3,4);
}
demo.cpp
#include "test.h"
int main()
{
add(3,4);
AA a;
return 0;
}
对两处add下断点可以看到,call跳转的是同一地址。也就是说,这个lib虽然被多次用到,但只被编译到程序一次。
有什么办法能让lib被链接进来两次,使两次add调用跳转到不同的地址呢?