2017-05-04 59 views
0

我准备为我的qt5应用程序的Windows生成,我有问题加载静态库.lib。 我的应用程序使用3d引擎,最初是建立在Linux(gcc + cmake),现在在Windows上我试图使用msvc + cmake。三维引擎静态库称为engined.lib。要加载库我做这样的事情:Cmake在窗口上,加载静态库

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) 

但过程编译时有误差修改例如在我的cpp文件我加载头:

#include "engine/Engine.h" 

但是,MSVC没有看到.H文件,我有错误。我做错了什么?

回答

0

您正在链接库,但您仍然需要配置CMake,以便找到引擎的标头。这样做的一个方法是通过缓存变量设置页眉的位置:

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

和配置您的构建目录时设置的变量:

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