У меня есть решение с 2 проектами:
Первый называется Engine
и у него есть 3 класса: Backbuffer и Vector2 и CTimer. Он имеет тип DLL консольного приложения, связывает winmm.lib, имеет все члены в пространстве имен «Engine», и если я его собираю (только этот проект), он компилируется.
Другой, Game
, зависимость ссылок для проекта Engine
, имеет тип проекта Win32, имеет дополнительные каталоги включения $ (SolutionDir) \ Engine \, для параметра «Зависимости библиотеки ссылок» установлено значение true. И это не компилируется.
Оба проекта скомпилированы с флагом «/ MD».
Я не знаю точно, если проблема вызвана VS12. Перепробовал множество решений подобных ошибок, но безрезультатно для меня.
Кажется, проблема в том, что он не компилирует файлы .CPP. Подумал, если я скомпилирую только проект «Engine», он компилируется идеально.
Ошибки:
1>------ Rebuild All started: Project: Engine, Configuration: Release Win32 ------
1> BackBuffer.cpp
1> CTimer.cpp
1> Vector2.cpp
1> Generating code
1> Finished generating code
1> Engine.vcxproj -> G:\Ubisoft\HumansVsZombies\Release\Engine.dll
2>------ Rebuild All started: Project: Game, Configuration: Release Win32 ------
2> CGameApp.cpp
2> CGameObject.cpp
2> Main.cpp
2>CGameApp.obj : error LNK2001: unresolved external symbol "public: void __thiscall Engine::BackBuffer::reset(void)" (?reset@BackBuffer@Engine@@QAEXXZ)
2>CGameApp.obj : error LNK2001: unresolved external symbol "public: void __thiscall Engine::BackBuffer::present(void)" (?present@BackBuffer@Engine@@QAEXXZ)
2>CGameApp.obj : error LNK2001: unresolved external symbol "public: __thiscall Engine::BackBuffer::~BackBuffer(void)" (??1BackBuffer@Engine@@QAE@XZ)
....
2>G:\Ubisoft\HumansVsZombies\Release\Game.exe : fatal error LNK1120: 12 unresolved externals
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
Спасибо !
Задача ещё не решена.
Других решений пока нет …