C++ 在windows上制作,加载静态库
我正在为我的qt5应用程序准备windows build,但在加载static library.lib时遇到问题。 我的应用程序使用3d引擎,最初是在linux gcc+cmake上构建的,现在在windows上我尝试使用msvc+cmake。3d引擎静态库称为engined.lib。要加载库,请执行以下操作:C++ 在windows上制作,加载静态库,c++,windows,visual-c++,cmake,C++,Windows,Visual C++,Cmake,我正在为我的qt5应用程序准备windows build,但在加载static library.lib时遇到问题。 我的应用程序使用3d引擎,最初是在linux gcc+cmake上构建的,现在在windows上我尝试使用msvc+cmake。3d引擎静态库称为engined.lib。要加载库,请执行以下操作: SET(CMAKE_FIND_LIBRARY_PREFIXES "") SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") find_libra
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文件,我有错误。我做错了什么?您正在针对库进行链接,但仍然需要配置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