1. 问题描述 按如下CMake代码,无法将lib文件安装到Debug/lib或Release/lib目录下,始终安装在CMAKE_INSTALL_PREFIX/lib下。 install(TARGETS target CONFIGURATIONS Debug LIBRARY DESTINATION Debug/lib) install(TARGETS target CONFIGURATIONS Release LIBRARY DESTINATION Release/lib) 1. 2. 3. 4. 5. 6. 2. 原因...
PERMISSIONS:指定要安装的文件的权限,指定哪个权限就有哪个权限,可以指定多个,如RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ RENAME:对安装的文件重命名,仅在只有一个文件被安装的条件下才有效。但是以下示例并没有生效 install( TARGETS cxx17 ...
DESTINATION定义了安装的路径,如果路径以/开头,那么指的是绝对路径,这时候CMAKE_INSTALL_PREFIX其实就无效了。如果你希望使用CMAKE_INSTALL_PREFIX来定义安装路径,就要写成相对路径,即不要以/开头,那么安装后的路径就是${CMAKE_INSTALL_PREFIX}/<DESTINATION定义的路径> 举个简单的例子: INSTALL(TARGETS myrun mylib ...
install(TARGETS target1 target2 target3 LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin ) 2.安装文件夹至指定位置 假设头文件文件夹位于CMakeList.txt同路径下include/${PROJECT_NAME}和test,安装至指定位置下的include文件夹 install(DIRECTORY include/${PROJECT_NAME}/ test/DESTINATION ...
#cmake最低版本cmake_minimum_required(VERSION3.5)project(Test)add_executable(Testmain.cpp)#设置 TARGETS Test 的安装路径为bin目录install(TARGETSTestDESTINATION${PROJECT_SOURCE_DIR}/bin) install命令 install用于指定在安装时运行的规则。它可以用来安装很多内容,可以包括目标二进制、动态库、静态库以及文件、目录...
install命令的原型如下: # 安装目标文件 install(TARGETS <target> DESTINATION ) # 安装文件 install(FILES <file> DESTINATION ) # 非目标文件的可执行文件 install(PROGRAMS <非目标文件的可执行文件> DESTINATION ) # 安装目录 install(DIRECTORY DESTINATION ) 比较简单,相信你一看就明白。 总结...
install(TARGETS target CONFIGURATIONS Debug RUNTIME DESTINATION Debug/bin) install(TARGETS target CONFIGURATIONS Release RUNTIME DESTINATION Release/bin) 注意:CONFIGURATIONS需要放在RUNTIME DESTINATION之前。 COMPONENT 指定与安装规则关联的安装组件名称,例如runtime或development。在指定组件安装期间,只有与给定组件名称...
install(TARGETS my_executable DESTINATION ${CMAKE_INSTALL_BINDIR}) install(FILES my_config.conf DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}) install(FILES my_data_file DESTINATION ${CMAKE_INSTALL_LOCALSTATEDIR}) ... 需要注意的是需要导入系统配置, 上面的CMake变量才会有值: ...
1.3.1 目标的安装(Installation of Targets) 在CMake中,目标(targets)通常指的是通过add_executable或add_library命令创建的可执行文件或库。我们可以使用install(TARGETS)命令来安装这些目标。例如: install(TARGETS myExecutable DESTINATION bin)install(TARGETS myLibrary DESTINATION lib) ...
TARGETS targets:targets即为我们通过ADD_EXECUTABLE或ADD_LIBRARY定义的目标文件,可能是可执行二进制,动态库,静态库; DESTINATION < dir >:dir即为定义的安装路径。安装路径可以是绝对/相对路径,若如果路径以/开头,则是绝对路径,且绝对路径的情况下,CMAKE_INSTALL_PREFIX就无效了。