find_package静态库而不是共享库

问题描述

使用CMake构建项目时,我希望它静态链接到库(如果有)。现在,无论是否存在.dll.a文件,它都能找到.a文件

例如,在一个小型示例项目中链接到libpng:

cmake_minimum_required(VERSION 3.15)
project(Test)

add_executable(Test main.cpp)

find_package(PNG required)
message(${PNG_LIBRARIES})
target_link_libraries(Test PRIVATE ${PNG_LIBRARIES})

对于message,它输出

C:/msys64/mingw64/lib/libpng.dll.aC:/msys64/mingw64/lib/libz.dll.a

但是libpng.alibz.a文件也位于同一目录中。如何告诉CMake与.a文件链接

我在Windows 10上将MinGW-w64与msys64结合使用,但希望使用跨平台的解决方案。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)