我正准备为我的qt5应用程序构建Windows,我在加载静态库.lib时遇到问题。 我的应用程序是使用3d引擎,最初是在linux(gcc + cmake)上构建的,现在在Windows上我尝试使用msvc + cmake。 3d引擎静态库称为engined.lib。要加载库,我会做类似的事情:
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 :(得分:1)
您正在链接库,但仍需要配置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