cmake - CMAKE:找到一个共享(模块)库
问题描述
为什么如果mylib是静态库,则此语句有效,而如果它是动态(共享)库则无效:
find_library(_found mylib PATHS ${mydirs})
其中mydir保存目录列表,其中包含库(静态和共享)。
我想以与静态库相同的方式找到一个动态库(以使其接近可执行文件)。会有一个目录列表,但为了简单起见,首先必须使用一个简单的测试用例:
cmake_minimum_required(VERSION 3.21)
project(myproj)
add_executable(myproj main.cpp)
find_library(a a${CMAKE_STATIC_LIBRARY_SUFFIX} PATHS "c:/work/libs/debug")
find_library(b b${CMAKE_SHARED_LIBRARY_SUFFIX} PATHS "c:/work/libs/debug")
message("dll=" "${CMAKE_SHARED_LIBRARY_SUFFIX}")
message("dll=" "${CMAKE_STATIC_LIBRARY_SUFFIX}")
message("a=" "${a}")
message("b=" "${b}")
而且,目录结构是这样的:
c:/work (CMakeLists.txt_main.cpp)
\_libs
\_debug (a.lib b.dll)
\_release (a.lib b.dll)
输出:
1>a=C:/work/libs/debug/a.lib
1>b=b-NOTFOUND
1>dll=.dll
1>dll=.lib
任何事物?
解决方案
推荐阅读
- mysql - 如何创建一个表,其中一列包含具有不同 id 的所有行的相同值?(请参阅布局以了解清楚)
- java - 尝试发送帖子并总是收到错误的请求
- python - Python YAML 转储特殊字符和多行
- javascript - html 表单:- onsubmit js 函数调用了两次
- sorting - 如何覆盖 hbase 表 HFiles 中的 Rowkey 排序?
- javascript - vue:语法错误:await是保留字
- php - 在 Mac 上通过 PECL 安装 PHP imagick
- java - ListView 为空时应用程序崩溃 | 如果我使用 ArrayList<>(),ListView 不显示内容
- firebase - Vue.js - Firebase Auth 无法正确检查重置密码的错误消息
- java - 在 Cucumber 表中使用元素定位器