Premake生成的解决方案不会在Release中编译,而是在Debug中编译

时间:2016-04-15 13:40:34

标签: c++ visual-studio-2012 release lnk2019 premake

我在Premake设置了一个项目,该项目由SharedLibConsoleApp组成,链接到SharedLib。此外,SharedLib链接到SFML二进制文件 我之前成功设置了:
- 包含ConsoleAppSharedLib链接到的预制项目 - 包含链接到SFML二进制文件的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
- 我链接到链接到SFML二进制文件的SharedLib项目

1 个答案:

答案 0 :(得分:0)

我刚刚在App.h / App.cpp添加了一个空的构造函数和析构函数,它现在似乎有效......

如果我使用App.h / App.cpp作为dll的一部分,但如果我直接将它们作为一部分使用,我真的很感激有人可以解释我为什么需要定义这些内容Executable