Я нахожусь в 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()
{
}
Мне нужно, чтобы проект нормально компилировался только с main.cpp и a.cpp в проекте, если a () никогда не вызывается. Если a () вызывается в _tmain (), то, конечно, b.cpp необходимо добавить в проект.
Компоновщик, кажется, не применяет OPT: REF до тех пор, пока не убедится, что КАЖДАЯ функция, на которую ссылается ВСЕГДА, находится в проекте. Даже если на него (b ()) ссылается функция без ссылки (a ()).