cmake使用动态链接库
时间: 2023-06-28 16:07:00 浏览: 60
首先,需要确保你的项目代码已经编写完成并且已经生成了动态链接库(也称为共享库或 DLL 文件)。然后,你可以按照以下步骤使用 CMake:
1. 在 CMakeLists.txt 文件中添加以下指令来定义你的库文件:
```
add_library(mylib SHARED mylib.cpp)
```
其中,mylib 是你的库文件的名字,SHARED 表示生成动态链接库。
2. 在你的项目中,通过 find_library 指令来查找该库文件。比如:
```
find_library(MYLIB mylib PATHS /path/to/mylib/directory)
```
其中,MYLIB 是你自定义的变量名,mylib 是库文件名,PATHS 指定库文件的路径。
3. 将找到的库文件链接到你的可执行文件中:
```
target_link_libraries(myexe ${MYLIB})
```
其中,myexe 是你的可执行文件名字。
4. 运行 CMake 生成 Makefile 或其他构建工具的文件。
5. 编译你的项目,此时库文件会被动态链接到你的可执行文件中。
注意:在 Windows 系统上,动态链接库的后缀名为 .dll,在 Linux 和 macOS 系统上,动态链接库的后缀名为 .so。因此在使用 find_library 指令时需要注意不同系统下的后缀名。
相关问题
cmake使用外部动态链接库
在 CMake 中使用外部动态链接库,需要使用 `find_library` 命令来查找库文件,并使用 `target_link_libraries` 命令将库链接到目标可执行文件或库中。
下面是一个示例 CMakeLists.txt 文件,其中引用了名为 `mylib` 的外部库:
```
# 查找外部库
find_library(MYLIB_LIB mylib)
# 创建目标可执行文件或库
add_executable(myapp main.cpp)
# 链接外部库到目标
target_link_libraries(myapp ${MYLIB_LIB})
```
在上面的代码中,我们首先使用 `find_library` 命令查找名为 `mylib` 的库文件,并将其保存到变量 `MYLIB_LIB` 中。然后我们使用 `add_executable` 命令创建名为 `myapp` 的可执行文件,并使用 `target_link_libraries` 将 `mylib` 库链接到 `myapp` 中。
注意,在使用 `find_library` 命令时需要指定库的名称,这通常与库文件的名称相同,但也可能略有不同。如果库文件位于非标准路径下,还需要使用 `link_directories` 命令指定库文件的路径。
另外,如果库文件是一个共享库(即动态链接库),则需要确保系统能够找到该库文件。这可以通过将库文件路径添加到系统环境变量中来实现,或者使用 `LD_LIBRARY_PATH` 变量指定库文件路径。
cmake生成动态链接库
使用CMake生成动态链接库的步骤如下:
1. 在CMakeLists.txt文件中指定要编译的源文件(例如使用add_library命令)。
2. 使用CMake生成Makefile文件。
3. 在终端中进入到CMake生成的Makefile文件所在的目录。
4. 输入"make"命令,即可编译生成动态链接库。
5. 如果需要,可以使用"make install"命令将动态链接库安装到指定的目录。
注意:使用CMake生成动态链接库时,需要指定目标类型为"SHARED",例如:
```
add_library(mylib SHARED src1.c src2.c)
```
这样CMake就会把src1.c和src2.c编译成动态链接库"mylib"。