【问题标题】:Cmake on windows, loading static libraryWindows上的Cmake,加载静态库
【发布时间】:2017-05-04 08:43:46
【问题描述】:

我正在为我的 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 文件,我有错误。我做错了什么?

【问题讨论】:

    标签: c++ windows visual-c++ cmake


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多