正确的方式应该是: if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/MyInstallPath CACHE PATH"My default install prefix"FORCE)endif() CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT:这是一个CMake的内部变量,不需要你自己维护。 这样就可以完美的做到:提供默认 ...
查阅文档发现,这个默认路径在cmake中有变量CMAKE_INSTALL_PREFIX控制。 再次试图set变量CMAKE_INSTALL_PREFIX,发现并没有生效。 查阅资料发现可以使用以下命令,强制其生效。 ET(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}" FORCE) 然而,这个变量的影响是全局的,它会导致主工程的install都被定位到当前目录,...
建议使用GNUInstallDirs中的变量。如果路径不存在会自动创建。 相对路径:会使用 CMAKE_INSTALL_PREFIX 作为前缀路径,即${CMAKE_INSTALL_PREFIX}/<your_path>,指定路径不存在的话可以自动创建。如果在cpack中使用,路径使用CPACK_PACKAGING_INSTALL_PREFIX 绝对路径 COMPONENT:指定一个与安装规则相关联的安装组件名,如"...
DESTINATION定义了安装的路径,如果路径以/开头,那么指的是绝对路径,这时候CMAKE_INSTALL_PREFIX其实就无效了。如果你希望使用CMAKE_INSTALL_PREFIX来定义安装路径,就要写成相对路径,即不要以/开头,那么安装后的路径就是${CMAKE_INSTALL_PREFIX}/<DESTINATION定义的路径> 举个简单的例子: INSTALL(TARGETS myrun mylib ...
cmake指定make install时的安装目录:通过设置 CMAKE_INSTALL_PREFIX 的值来控制。 有两种方法: 1.在执行cmake时,指定安装目录: cmake -DCMAKE_INSTALL_PREFIX=/xxx/x .. 2.直接在CMakeLists.txt中设置 se
DESTINATION定义了安装的路径,如果路径以/开头,那么指的是绝对路径,这时候CMAKE_INSTALL_PREFIX其实就无效了。如果你希望使用CMAKE_INSTALL_PREFIX来定义安装路径,就要写成相对路径,即不要以/开头,那么安装后的路径就是${CMAKE_INSTALL_PREFIX}/<DESTINATION定义的路径> ...
如果是绝对路径,会直接使用该路径作为安装路径,不会做任何改动。 因为cpack(cpack可执行文件是一个CMake打包程序,它可以以各种格式生成安装程序和源程序包)安装生成器不支持绝对路径,要使用相对路径。没有必要使用预置的CMAKE_INSTALL_PREFIX变量来生成绝对路径,因为只要DESTINATION指定的是相对路径,那么会自动使用CMAKE...
Easiest solution is probably to make eg. "INSTALL_PREFIX_ABSOLUTE" variable which is either CMAKE_INSTALL_PREFIX as it isif (IS_ABSOLUTE ${CMAKE_INSTALL_PREFIX})or"${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_PREFIX}"(not sure is CMAKE_BINARY_DIR is the best base for the absolute path) ...
DESTINATION定义了安装的路径,如果路径以/开头,那么指的是绝对路径,这时候CMAKE_INSTALL_PREFIX其实就无效了。如果你希望使用CMAKE_INSTALL_PREFIX来定义安装路径,就要写成相对路径,既不要以/开头,那么安装后的路径就是 ${CMAKE_INSTALL_PREFIX}/<DESTINATION定义的路径> 举例: INSTALL(TARGETS myrun mylib mystatic...