2017-05-04 5 views
0

Ich bereite Windows Build für meine Qt5-Anwendung und ich habe Probleme mit dem Laden statischer Bibliothek .lib. Meine Anwendung verwendet 3d-Engine und ursprünglich wurde auf Linux (gcc + cmake) gebaut, jetzt auf Windows Ich versuche, msvc + cmake zu verwenden. Die statische Libelle der Engine wird engine.lib genannt. So laden Bibliothek ich so etwas tun:Cmake auf Windows, Laden statische Bibliothek

SET(CMAKE_FIND_LIBRARY_PREFIXES "") 
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") 
find_library(engine NAMES engined PATHS path_to_lib) 
target_link_libraries(${PROJECT_NAME} 
    Qt5::Widgets 
    Qt5::OpenGL 
    Qt5::Xml 
    engine) 

Aber während der Prozesszusammenstellung gibt es erros zum Beispiel in meiner CPP-Datei Ich bin Laden Header:

#include "engine/Engine.h" 

aber msvc nicht sehen .h Datei und ich habe einen Fehler. Ich mache etwas falsch?

Antwort

0

Sie verknüpfen die Bibliothek, aber Sie müssen CMake konfigurieren, damit die Header der Engine gefunden werden. Eine Möglichkeit, dies zu tun, ist die Position der Header durch ein Cache-Variablen zu setzen:

# CMakeLists.txt 
set(ENGINE_INCLUDE_DIR "" CACHE PATH "Include directory") 
target_include_directories(engine PRIVATE ${ENGINE_INCLUDE_DIR}) 

und die Variable gesetzt, wenn Ihr Build-Verzeichnis konfigurieren:

cmake -DENGINE_INCLUDE_DIR=/path/to/include/dir /path/to/project 
Verwandte Themen