1

我在Premake中设置了一个项目,该项目由 aSharedLib和 aConsoleApp链接到该SharedLib. 此外,SFML二进制文件的SharedLib链接。 我之前成功设置过: - 包含 a和它链接到 的预制项目 - 包含链接到 SFML 二进制文件的预制项目 但是将两者结合起来在构建中将无法解决

ConsoleAppSharedLib
ConsoleApp
release

下面是 MSVC 2012 产生的输出:

2>  main.cpp
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::RenderWindow::RenderWindow(void)" (__imp_??0RenderWindow@sf@@QAE@XZ) referenced in function _main
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall sf::RenderWindow::~RenderWindow(void)" (__imp_??1RenderWindow@sf@@UAE@XZ) referenced in function _main
2>..\..\.bin\Example\Release\Example.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我的预制项目的文件夹结构:

SFML_PROJECT
|-- .libraries
|   `-- SFML-2.3.2-Win32
|       |-- include
|       |-- lib
|       `-- bin
|-- example
|   `-- main.cpp
|-- include
|   |-- App.h
|   `-- Config.h
|-- src
|   `-- App.cpp
`-- premake5.lua

还有我的premake5.lua(我很抱歉文件比较大,但如果我缩短它,我可能会错过一些重要的东西)

总结一下我的发布配置ConsoleApp
- 我添加了SFML include
- 我链接到SharedLib链接到 SFML 二进制文件的项目

4

1 回答 1

0

App.h我刚刚在/中添加了一个空的构造函数和析构函数,App.cpp它现在似乎可以工作......

如果有人能解释我为什么我需要定义那些,如果我使用App.h/App.cpp作为 a 的一部分,dll但如果我直接使用它们作为a 的一部分,我将不胜感激Executable

于 2016-04-15T13:59:08.257 回答