通过 cmake 将外部静态库与项目链接

时间:2021-05-13 00:53:36

标签: c++ cmake

我对此存储库有问题:https://github.com/nmoinvaz/minizip。我按照在 Build 中编写的方式构建它。然而,我不明白,结果应该是什么?静态库或任何包? 在图片上,您可以看到由 2 个 cmds 生成的所有文件。 enter image description here

结果我不知道如何将它连接到我的项目。这是我的 CMakeLists.txt。

cmake_minimum_required(VERSION 3.16)

project(MZ2
        LANGUAGES CXX)

set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++14 -pthread")

include_directories(/home/julian/Desktop/minizip-ng-master)

find_package(minizip 3.0.2 EXACT REQUIRED PATHS /home/julian/Desktop/minizip-ng-master)

add_executable(MZ2 main.cpp)

target_compile_definitions(MZ2 PRIVATE -DHAVE_STDINT_H;-DHAVE_INTTYPES_H;-D_POSIX_C_SOURCE=200112L -DHAVE_ZLIB;-DHAVE_LZMA;-DLZMA_API_STATIC;-DHAVE_ICONV;-DMZ_ZIP_SIGNING;-DHAVE_PKCRYPT;-DHAVE_WZAES)
 target_compile_definitions(MZ2 PRIVATE -DHAVE_COMPAT)

target_include_directories(MZ2 PRIVATE /home/julian/Desktop/minizip-ng-master)
target_link_libraries(MZ2  minizip)

结果我有一个错误:

[100%] Linking CXX executable MZ2
/usr/bin/ld: cannot find -lminizip
collect2: error: ld returned 1 exit status
CMakeFiles/MZ2.dir/build.make:83: recipe for target 'MZ2' failed
make[3]: *** [MZ2] Error 1

我知道编译器找不到必要的“minizip”库。 那么,在这种情况下我该怎么办?

0 个答案:

没有答案
相关问题