win下使用cmake 调用dll,如何引用对应的lib
时间: 2024-02-09 08:11:55 浏览: 99
使用CMake生成动态链接库(.dll和.so)和静态链接库(.lib和.a)的方法
在 Windows 平台下,使用 CMake 调用动态链接库(dll)时,需要先引用对应的静态库文件(lib)才能成功链接。具体步骤如下:
1. 将需要调用的 dll 文件复制到 CMake 项目的二进制目录下,通常是 CMakeLists.txt 所在的目录。
2. 在 CMakeLists.txt 文件中使用 `add_library()` 命令添加一个静态库 target,并将需要调用的 dll 文件添加到该 target 的 SOURCES 列表中,例如:
```
add_library(mylib STATIC mylib.cpp mydll.dll)
```
其中,`mylib.cpp` 是需要编译的源文件,`mydll.dll` 是需要调用的 dll 文件。
3. 在 CMakeLists.txt 文件中使用 `target_link_libraries()` 命令将静态库 target 链接到调用它的可执行文件或另一个库文件上,例如:
```
add_executable(myexe main.cpp)
target_link_libraries(myexe mylib)
```
4. 在 `target_link_libraries()` 命令中指定需要引用的 lib 文件,格式为 `target_name.lib`,例如:
```
target_link_libraries(mylib mydll.lib)
```
其中,`mydll.lib` 是 dll 文件的静态库文件,需要将该文件添加到 CMake 项目中,并在 `target_link_libraries()` 命令中引用。
通过以上步骤,即可在 Windows 平台下使用 CMake 调用动态链接库,并成功链接对应的静态库文件。
阅读全文