cmake 语法 find_package


打开Qt 5.12.9 (MinGW 7.3.0 32-bit) 命令窗口
新建CMakeLists.txt 同目录下新建build
mkdir build
cd build
cmake .. -G "MinGW Makefiles"


cmake_minimum_required(VERSION 3.18)  # ← 改为 3.12 或更高,才能使用 ZLIB_ROOT 
# ===== 方案3:使用 ZLIB_ROOT(最推荐,CMake 3.12+) =====
set(ZLIB_ROOT "F:/barcode_build/zlib_install")
find_package(ZLIB REQUIRED)  # 自动搜索 include 和 lib

# 手动指定你本地zlib路径
#set(ZLIB_INCLUDE_DIR "F:/barcode_build/zlib_install/include")
#set(ZLIB_LIBRARY "F:/barcode_build/zlib_install/lib")
# 查找ZLIB库
find_package(ZLIB REQUIRED)
#如果注释了,find_package,ZLIB_FOUND:这些也不会打印的。
#CMAKE安装的时候,自带的,ZLIB.cmake
#find_package,会走ZLIB.cmake,才会展开,运行,建立ZLIB_FOUND 、ZLIB_INCLUDE_DIRS 、ZLIB_LIBRARIES 变量
#find_package(ZLIB REQUIRED) 就是相当于展开ZLIB.cmake

ZLIB_FOUND 是 ZLIB.cmake 创建的。

第三方 .cmake
list(APPEND CMAKE_MODULE_PATH "F:/barcode_build/zint/cmake/modules")
list(APPEND 变量 内容)
# 2. 再查找库
find_package(Zint REQUIRED)
这里只是展开 zint.cmake

# 2. 指定zint安装根目录(bin、include、lib都在这个文件夹下)
set(ZINT_ROOT "F:/barcode_build/zint_install")




# CMakeLists.txt

cmake_minimum_required(VERSION 3.18)  # ← 改为 3.12 或更高
project(FindZlibDemo)

message(STATUS "CMake version: ${CMAKE_VERSION}")

# 手动指定你本地zlib路径
set(ZLIB_INCLUDE_DIR "F:/barcode_build/zlib_install/include")
set(ZLIB_LIBRARY "F:/barcode_build/zlib_install/lib")
# 查找ZLIB库
find_package(ZLIB REQUIRED)

# ===== 方案3:使用 ZLIB_ROOT(最推荐,CMake 3.12+) =====
#set(ZLIB_ROOT "F:/barcode_build/zlib_install")
#find_package(ZLIB REQUIRED)  # 自动搜索 include 和 lib

# 开启详细日志(可选,查看查找全过程)
set(CMAKE_FIND_DEBUG_MODE OFF)

# 分割线,方便查看
message(STATUS "==================== ZLIB 查找结果 ====================")

# 核心查找状态
message(STATUS "ZLIB_FOUND         : ${ZLIB_FOUND}")

# 头文件路径
message(STATUS "ZLIB_INCLUDE_DIR   : ${ZLIB_INCLUDE_DIR}")
message(STATUS "ZLIB_INCLUDE_DIRS  : ${ZLIB_INCLUDE_DIRS}")

# 库文件路径(静态/动态库)
message(STATUS "ZLIB_LIBRARY       : ${ZLIB_LIBRARY}")
message(STATUS "ZLIB_LIBRARIES     : ${ZLIB_LIBRARIES}")

# 版本信息
message(STATUS "ZLIB_VERSION       : ${ZLIB_VERSION}")
message(STATUS "ZLIB_VERSION_STRING: ${ZLIB_VERSION_STRING}")

# 附加变量(编译选项、调试库等)
message(STATUS "ZLIB_COMPILES      : ${ZLIB_COMPILES}")
message(STATUS "ZLIB_HAS_ZLIB_H    : ${ZLIB_HAS_ZLIB_H}")

message(STATUS "======================================================")

posted @ 2026-08-11 21:42  一见无始道成空  阅读(6)  评论(0)    收藏  举报