我有一個項目在Premake中設置,它由SharedLib
和ConsoleApp
組成,鏈接到SharedLib
。此外,SharedLib
鏈接到SFML二進制文件。
我成功地安裝前:
- 包含一個ConsoleApp
並將其鏈接到
一個SharedLib
一個premake項目 - 包含一個ConsoleApp
鏈接到SFML二進制
但結合既是premake項目只是不會在鍛鍊身體release
構建Premake生成的解決方案不會在Release中編譯,但在調試中編譯
下面是MSVC 2012產生的輸出:
2> main.cpp
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::RenderWindow::RenderWindow(void)" ([email protected]@@[email protected]) referenced in function _main
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall sf::RenderWindow::~RenderWindow(void)" ([email protected]@@[email protected]) 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 ==========
我premake項目的文件夾結構:
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二進制