make install 和make uninstall 怎么实现用cmakelists.txt
时间: 2024-10-15 22:28:47 浏览: 35
`make install` 和 `make uninstall` 是两个常见的Makefile规则,用于构建系统中的软件包后安装到目标位置以及卸载已安装的软件。在CMakeLists.txt文件中,你可以通过设置特定的模块来实现这两个功能:
1. **make install**:
CMake提供了`install(TARGETS)`函数来管理目标文件的安装。首先,在`CMakeLists.txt`中,你需要添加`install()`指令来标记哪些目标需要被安装,例如:
```cmake
add_executable(my_program main.cpp)
install(TARGETS my_program DESTINATION bin)
```
这里假设`my_program`是一个可执行程序,它会被安装到`bin`目录下。
2. **make uninstall**:
创建一个名为`uninstall.cmake`的文件,并在项目的根目录下。这个文件通常会包含一个`uninstall()`命令,列出需要移除的资源:
```cmake
file(GLOB_RECURSE FILES "bin/my_program" "lib/*.so")
foreach(FILE ${FILES})
remove_file(${FILE})
endforeach()
```
然后在`CMakeLists.txt`中告诉CMake去查找这个卸载脚本:
```cmake
configure_file(uninstall.cmake ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}/cmake_uninstall.cmake IMMEDIATE @ONLY)
install(CODE "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}/cmake_uninstall.cmake")
```
当`make uninstall`执行时,会调用这个卸载脚本来清理已安装的文件。
阅读全文