должен ли мой порядок зависимости проекта быть:
a.lib зависит от ab.lib, a.lib зависит от ac.lib
или же
ab.lib зависит от a.lib, ac.lib зависит от a.lib
от a.lib содержит базовые классы / функции, используемые другими библиотеками
ФАЙЛ a.h
class A
{
public:
virtual void Update();
// base function declarations here
// ...
}
от ab.lib переопределяет, реализует и расширяет класс A
ФАЙЛ б.ч
#include "a.h"class B : public A
{
public:
// overridden functions here
// ...
void Update();
}
от ac.lib переопределяет, реализует и расширяет класс A
ФАЙЛ c.h
#include "a.h"class C : public A
{
public:
// overridden functions here
// ...
void Update();
}
После тестирования аналогичного, хотя и более сложного сценария, чем в этой упрощенной версии, Visual Studio 2013, похоже, не заботится о том, в какую сторону я настроил свои зависимости. Это меня беспокоит.
Спасибо за любую помощь, которую вы можете предоставить.
Давайте просто скажем, что объявление класса A находится в a.h
Как вы компилируете ab.cpp (содержит определение класса B), # include’ing с «a.h»?
Как вы компилируете ac.cpp (содержит определение класса C), # include’ing с «a.h»?
Правильно?
Это означает, что зависимости времени компиляции уже установлены, поэтому VS 2013 не жалуется.
ab.lib зависит от a.lib, ac.lib зависит от a.lib
Надеюсь, это проясняет.