相关疑难解决方法(0)

IMPORTED目标和INTERFACE库之间有什么区别?

据我所知,INTERFACE库就像Visual Studio属性表,非常有用.我们可以使用它来链接静态库并传播属性.

IMPORTED目标让我困扰:我无法看到只能通过IMPORTED目标解决的问题.

cmake

17
推荐指数
2
解决办法
7791
查看次数

CMake导入的库行为

我和CMake有一个奇怪的问题.

我正在将Curl导入到我的项目中,所以我为您编写了一个简单的CMakeLists.txt文件摘要.

ADD_LIBRARY(libcurl SHARED IMPORTED )

SET_PROPERTY(TARGET libcurl PROPERTY IMPORTED_LOCATION ../lib/libcurl.lib)

当我运行CMake时,它会为MS VC++生成项目文件(也适用于Linux).然后进入项目文件,我发现curl库(libcurl-NOTFOUND)的错误引用!

如果我将我的代码更改为静态导入:

ADD_LIBRARY(libcurl STATIC IMPORTED )

SET_PROPERTY(TARGET libcurl PROPERTY IMPORTED_LOCATION ../lib/libcurl.lib)

我找到了对../lib/libcurl.lib的正确引用.

你知道为什么会这样吗?

非常感谢你!

c c++ cmake

14
推荐指数
1
解决办法
9690
查看次数

include_directories 用于导入库

我正在用 c++ 编写项目,并且在 cmake 中导入库时遇到问题。正在导入的第三方库不会传播包含目录。

根目录/CMakeLists.txt

# Top level CMakeLists.txt

cmake_minimum_required(VERSION 3.9.2 FATAL_ERROR)
project(camera_calib)

add_subdirectory(${PROJECT_SOURCE_DIR}/nana)

file(GLOB SRC "${PROJECT_SOURCE_DIR}/src/*.cpp")

add_executable(camera_calib_exe ${SRC})

target_include_directories(camera_calib_exe PRIVATE ${PROJECT_SOURCE_DIR}/include)
target_link_libraries(camera_calib_exe nana_lib)
Run Code Online (Sandbox Code Playgroud)

/nana/CMakeLists.txt

# nana c++ gui CMakeLists.txt

cmake_minimum_required(VERSION 3.9.2 FATAL_ERROR)
project(nana VERSION 1.5.6 LANGUAGES CXX)

add_library(nana_lib STATIC IMPORTED)
set_property(TARGET nana_lib PROPERTY IMPORTED_IMPLIB_DEBUG ${PROJECT_SOURCE_DIR}/lib/nana_v141_Debug_x64.lib)
set_property(TARGET nana_lib PROPERTY IMPORTED_IMPLIB_RELEASE ${PROJECT_SOURCE_DIR}/lib/nana_v141_Release_x64.lib)
set_property(TARGET nana_lib PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/include)
#set_property(TARGET nana_lib PROPERTY INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/include)
Run Code Online (Sandbox Code Playgroud)

代码示例/src/main.cpp

#include <nana/gui.hpp>
#include <nana/gui/widgets/label.hpp>
#include <nana/gui/widgets/button.hpp>

int main(int argc, char** argv)
{
    nana::form fm(nana::rectangle(0, 0, 1900, 1000)); …
Run Code Online (Sandbox Code Playgroud)

c++ cmake nana

5
推荐指数
1
解决办法
3139
查看次数

标签 统计

cmake ×3

c++ ×2

c ×1

nana ×1