cmake 指定安装路径
在使用 CMake 构建项目时,指定安装路径是一个常见的需求,这可以通过几种方式实现。以下是一些常见的方法来指定安装路径:
1. 使用 CMAKE_INSTALL_PREFIX
变量
CMAKE_INSTALL_PREFIX
是一个 CMake 变量,用于指定安装的目标目录。你可以在运行 cmake
命令时设置这个变量:
cmake -DCMAKE_INSTALL_PREFIX:PATH=/your/desired/install/path ..
例如,如果你想要将你的项目安装在 /usr/local
目录下,可以这样做:
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local ..
2. 在 CMakeLists.txt
中设置默认安装路径
你也可以在 CMakeLists.txt
文件中直接设置 CMAKE_INSTALL_PREFIX
的默认值:
set(CMAKE_INSTALL_PREFIX "/your/desired/install/path" CACHE PATH "Default install path")
这样做的好处是,如果你不希望在命令行中每次都指定安装路径,可以直接通过修改 CMakeLists.txt
来改变默认的安装路径。
3. 使用 install()
命令自定义安装路径
在 CMakeLists.txt
中,你可以使用 install()
命令来指定具体的文件或目录应该被安装到哪个位置。例如:
install(TARGETS your_target
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
这个命令会安装目标文件到指定的目录。例如,RUNTIME DESTINATION bin
表示可执行文件将被安装到 /your/desired/install/path/bin
。
4. 使用相对路径或绝对路径
在 install()
命令中,你可以使用相对路径或绝对路径来指定安装位置。例如:
install(TARGETS your_target DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
这里 ${CMAKE_INSTALL_PREFIX}
是之前通过命令行或 CMakeLists.txt
设置的安装前缀。
5. 运行 make install
时指定安装路径(不推荐)
尽管这不是在 CMake 配置阶段指定安装路径,但了解这一点也是很重要的。在某些情况下,你可以在运行 make install
时使用 DESTDIR
来改变安装的根目录:
make install DESTDIR=/your/desired/install/root
这会在指定的根目录下创建一个结构,模拟实际的安装路径。然而,这种方法不如直接在 CMake 配置阶段指定路径来得直接和清晰。
总结
通常推荐在运行 cmake
命令时通过 -DCMAKE_INSTALL_PREFIX
来指定安装路径,或者在 CMakeLists.txt
中设置默认的 CMAKE_INSTALL_PREFIX
。这样可以确保安装路径的一致性和灵活性。使用 install()
命令来具体指定文件或目录的安装位置也是一个很好的实践。
编译make
安装make install