如果你用set(CACHE FORCE),那么将失去从命令行覆盖设置的能力。 正确的方式应该是: 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_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT: 布尔变量,表明当前的安装位置前缀是否被设置,还是仍然为默认值 PROJECT_NAME:当前项目名称,CMAKE_PROJECT_NAME: 根项目名称; PROJECT_BINARY_DIR,<projectname>_BINARY_DIR,CMAKE_BINARY_DIR: 项目的编译目录,通常为生成时指定的/build子目录,三者的细微区别由前缀体现。
DESTINATION定义了安装的路径,如果路径以/开头,那么指的是绝对路径,这时候CMAKE_INSTALL_PREFIX其实就无效了。如果你希望使用CMAKE_INSTALL_PREFIX来定义安装路径,就要写成相对路径,即不要以/开头,那么安装后的路径就是${CMAKE_INSTALL_PREFIX}/<DESTINATION定义的路径> 举个简单的例子: INSTALL(TARGETS myrun mylib ...
if( CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) message(STATUS "Setting default CMAKE_INSTALL_PREFIX path to ${CMAKE_BINARY_DIR}/install") set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE STRING "The path to use for make install" FORCE) endif() 1. 2. 3. 4. 此示例将...
《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX 《CMake实践》笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 四、更好一点的Hello World 没有最好,只
#全局安装路径set(CMAKE_INSTALL_PREFIX${PROJECT_BINARY_DIR}/install) 缺点:没有检查 CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 就直接 set:这会导致用户传入的参数失效,相当于硬编码了路径。 正确方式: if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)set(CMAKE_INSTALL_PREFIX${PROJECT_BINARY_DIR}/instal...
"cacheVariables": {"CMAKE_BUILD_TYPE":"Debug","CMAKE_INSTALL_PREFIX":"${sourceDir}/out/install/${presetName}","CMAKE_C_COMPILER":"cl","CMAKE_CXX_COMPILER":"cl"}, 使用 建置clang: JSON "cacheVariables": {"CMAKE_BUILD_TYPE":"Debug","CMAKE_INSTALL_PREFIX":"${sourceDir}/out/instal...
set(CMAKE_INSTALL_PREFIX /usr/local) 上面的CMakeLists.txt文件将创建一个名为my_library的动态库,并使用install命令将库文件安装到/usr/local/lib目录中。安装文件通常需要root权限。因此,非root用户 可能需要使用sudo命令来运行make install命令。 0x02 示例 ...
set(CMAKE_INSTALL_PREFIX /your/desired/path) 这里/your/desired/path是你希望安装你的项目的目录路径。这个路径应当是绝对路径,以确保无论从哪里调用make install,安装的位置都是确定的。 2.2 默认目标文件的安装路径 (Default Installation Paths for Target Files) ...
如果是相对路径,会以CMAKE_INSTALL_PREFIX变量(Unix/Linux下默认值是/usr/local,Windows下的默认值是C:/Program Files/${PROJECT_NAME})内容为前缀。类Unix系统下可以在安装时通过DESTDIR环境变量(参考DESTDIR,备注:DESTDIR是DESTination DIRectory的缩写)重定位整个安装路径。例如文件的安装前缀默认是/usr/local/,当...