【发布时间】:2016-04-15 13:40:34
【问题描述】:
我在Premake 中设置了一个项目,其中包含一个SharedLib 和一个链接到该SharedLib 的ConsoleApp。此外,SharedLib 链接到 SFML 二进制文件。
我之前设置成功:
- 一个包含ConsoleApp 和SharedLib 的预制项目,它链接到
- 包含链接到 SFML 二进制文件的 ConsoleApp 的预制项目
但是在releasebuild 中将两者结合起来是行不通的
这是 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
- 我链接到链接到 SFML 二进制文件的 SharedLib 项目
【问题讨论】:
标签: c++ visual-studio-2012 release lnk2019 premake