cmake 如何链接dll
时间: 2024-12-21 07:30:14 浏览: 10
在CMake中链接DLL(动态链接库),你需要做以下几个步骤:
1. **添加目标依赖**:首先,在`CMakeLists.txt`文件中找到包含要链接DLL的目标,并使用`target_link_libraries`命令将其与其他静态库、共享库或需要DLL的其他目标关联起来。例如:
```cmake
add_library(your_target_name SHARED your_source_files)
target_link_libraries(your_target_name DLL_NAME)
```
2. **指定查找路径**:如果DLL不在默认搜索路径上,可以使用`find_library`函数来查找并设置`LINK_DIRECTORIES`来指示CMake去哪里搜索:
```cmake
find_library(DLL_NAME PATHS /path/to/dlls)
link_directories(${DLL_PATH})
```
3. **设置运行时搜索路径**:如果你希望程序在运行时也能找到DLL,可以使用`install(TARGETS)`将DLL安装到指定的位置,同时设置环境变量`LD_LIBRARY_PATH`或Windows下的`PATH`。
4. **生成平台特定配置**:确保分别为你想要构建的每个平台(如Windows x64、Linux等)创建对应的构建配置,因为CMake预设的可能不适合所有情况。
5. **处理导入导出符号**:对于Windows平台,使用`dllexport`和`declspec(dllimport)`标记接口,如果是CMake,你可以使用`export_library_symbols`选项。
```cmake
add_library(your_target_name SHARED ...)
set_target_properties(your_target_name PROPERTIES
COMPILE_FLAGS "/DWIN32;_WINDOWS;NDEBUG")
```
阅读全文