【发布时间】:2009-08-19 21:43:01
【问题描述】:
我在 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,直到确定引用的每个函数都在项目中之后。即使它 (b()) 在未引用的函数 (a()) 中被引用。
【问题讨论】:
标签: c++ linker visual-studio-2003