我有一个包含 2 个项目的解决方案:
第一个被调用Engine
,它有 3 个类:Backbuffer 和 Vector2 和 CTimer。它是控制台应用程序 DLL 类型,链接 winmm.lib,在命名空间“引擎”中具有所有成员,如果我构建它(仅此项目),它会编译。
另一个项目的Game
链接依赖Engine
项是 Win32 项目类型,具有附加的包含目录 $(SolutionDir)\Engine\,将“链接库依赖项”设置为 true。它不会编译。
两个项目都使用“/MD”标志编译。
我不确定问题是否是由 VS12 引起的。尝试了很多类似错误的解决方案,但对我来说没有结果。
问题似乎是它没有编译 .CPP 文件。想如果我只编译“引擎”项目,它编译得很好。
错误:
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 ==========
谢谢 !