2016-04-15 4 views
1

Ich habe ein Projekt in Premake eingerichtet, das aus einem SharedLib und einem ConsoleApp besteht, das mit dem SharedLib verknüpft. Darüber hinaus ist die SharedLib Links zu den SFML Binärdateien.
ich Setup erfolgreich vor:
- Ein Premake Projekt, das ein ConsoleApp und SharedLib es
Links enthält - Ein Premake Projekt, das ein ConsoleApp enthält, die einfach gewohnt in denen trainiert sowohl die SFML Binärdateien
Aber die Kombination von Links release buildPremake generierte Lösung kompiliert nicht in Release, kompiliert aber in Debug

Hier ist die Ausgabe, die MSVC 2012 produziert:

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 ========== 

die Ordnerstruktur meiner Premake Projekt:

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

Und mein premake5.lua (Es tut mir leid für die ziemlich große Datei, aber wenn ich es verkürzen würde ich vielleicht etwas Wichtiges verpassen)

Zu meiner Release Config des ConsoleApp zusammenfassen:
- I die SFML include
hinzugefügt - ich verbinde mit dem SharedLib Projekt, das auf die SFML Binärdateien Links

Antwort

0

habe ich nur noch eine leere cons tructor und destructor in App.h/App.cpp und es scheint jetzt zu funktionieren ...

ich wirklich schätzen, wenn jemand mir erklären könnte, warum ich diese definieren müssen, wenn ich App.h/App.cpp als Teil eines dll verwenden, aber nicht, wenn Ich benutze sie direkt als Teil einer Executable.

Verwandte Themen