我在 Visual Studio 2003 中。我在一个非常常见的模块中有一个函数,它需要 3 个其他模块。我只希望使用新函数的项目必须包含其他 3 个模块,以及那些不引用该函数以链接没有“未解决的外部符号”错误的项目。我尝试了函数级链接、OPT:REF 和我能想到的每个项目设置,但链接器总是抱怨。我做了一个简单的例子来测试。任何想法都会很棒......
//main.cpp
//#include "a.h"
int _tmain(int argc, _TCHAR* argv[])
{
//a();
return 0;
}
//a.h
#include "b.h"
void a();
//a.cpp
#include "a.h"
#include "b.h"
void a()
{
b();
}
//b.h
void b();
//b.cpp
#include "b.h"
void b()
{
}
只要 a() 从未被调用,我需要在项目中只使用 main.cpp 和 a.cpp 来编译项目。如果在 _tmain() 中调用了 a(),那么当然必须将 b.cpp 添加到项目中。
链接器似乎没有应用 OPT:REF 直到确定引用的每个函数 ANYWHERE 都在项目中。即使它 (b()) 在未引用的函数 (a()) 中被引用。