添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

cmake 输出路径通常需要设置一下,这里记录一下:

1.设置可执行文件的输出路径:

SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)

2.静态库 lib 输出路径:

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin)

3.动态库输出路径(注意这个放在最后):

SET_TARGET_PROPERTIES(dllname PROPERTIES RUNTIME_OUTPUT_DIRECTORY ../bin)

4.上面两条语句分别设置了Debug版本和Release版本下库文件的后缀名

set(CMAKE_DEBUG_POSTFIX "_d")    set(CMAKE_RELEASE_POSTFIX "_r") 

5.设置了Debug版本和Release版本下可执行文件的后缀名

set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d") 
set_target_properties(${TARGET_NAME} PROPERTIES RELEASE_POSTFIX "_r")

6.设置项目名称:

PROJECT( name )

7.设置链接库名称:

target_link_libraries

target_link_libraries(
                     DealWithMould
             ${VTK_LIBRARIES}
target_link_libraries(myProject hello) 

8.可执行文件名,通过指定的源文件列表构建出可执行目标文件:

ADD_EXECUTABLE
ADD_EXECUTABLE(main main.cpp context.cpp patten.cpp patten.hpp )

9. 为生成的target配置安装目录 CMAKE_INSTALL_PREFIX

SET(CMAKE_INSTALL_PREFIX <你要安装的路径>)
install(TARGETS MyLib
        EXPORT MyLibTargets 
        LIBRARY DESTINATION lib  # 动态库安装路径
        ARCHIVE DESTINATION lib  # 静态库安装路径
        RUNTIME DESTINATION bin  # 可执行文件安装路径
        PUBLIC_HEADER DESTINATION include  # 头文件安装路径

LIBRARY, ARCHIVE, RUNTIME, PUBLIC_HEADER是可选的,可以根据需要进行选择。 DESTINATION后面的路径可以自行制定,根目录默认为CMAKE_INSTALL_PREFIX,可以试用set方法进行指定,如果使用默认值的话,Unix系统的默认值为 /usr/local, Windows的默认值为 c:/Program Files/${PROJECT_NAME}。比如字linux系统下若LIBRARY的安装路径指定为lib,即为/usr/local/lib。所以要安装mymath mymathapp我们可以这样写

PROJECT_SOURCE_DIR:工程的根目录
PROJECT_BINARY_DIR:运行cmake命令的目录,通常为${PROJECT_SOURCE_DIR}/build
PROJECT_NAME:返回通过 project 命令定义的项目名称
CMAKE_CURRENT_SOURCE_DIR:当前处理的 CMakeLists.txt 所在的路径
CMAKE_CURRENT_BINARY_DIR:target 编译目录
CMAKE_CURRENT_LIST_DIR:CMakeLists.txt 的完整路径
EXECUTABLE_OUTPUT_PATH:重新定义目标二进制可执行文件的存放位置
LIBRARY_OUTPUT_PATH:重新定义目标链接库文件的存放位置
#设置变量
set(OPENCV_DLL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/deps/OpenCV/bin)
# 设置输出目录
set(OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../CMakeProjectTestDebug/")
set(EXECUTABLE_OUTPUT_PATH "${OUTPUT_PATH}/bin/")
set(LIBRARY_OUTPUT_PATH "${OUTPUT_PATH}/lib/")   
# 拷贝文件到exe所在的目录
# 1 拷贝文件夹里的文件
file(COPY ${OPENCV_DLL_DIR}/ DESTINATION ${EXECUTABLE_OUTPUT_PATH})
# 2 拷贝bin文件
file(COPY ${OPENCV_DLL_DIR} DESTINATION ${EXECUTABLE_OUTPUT_PATH})
file(COPY /opt/fs/lib/libfs.so DESTINATION lib libfs.so)
注意:copy 是 配置 cmake 时就会执行;可用于拷贝代码到一个目录,不适合拷贝生成文件
将所有符号链接和libfoo.so.1.2.3本身安装到lib中

也可以使用安装代替拷贝

install

install用于指定在安装时运行的规则。它可以用来安装很多内容,可以包括目标二进制、动态库、静态库以及文件、目录、脚本等:

install(TARGETS <target>... [...])
install({FILES | PROGRAMS} <file>... [...])
install(DIRECTORY <dir>... [...])
install(SCRIPT <file> [...])
install(CODE <code> [...])
install(EXPORT <export-name> [...])

一般复制或文件夹,//将生成的文件夹下内容全部拷贝到,指定目标目录;

install(DIRECTORY ${PROJECT_BINARY_DIR}/bin DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)

 拷贝文件到指定目录:

install(FILES ${PROJECT_BINARY_DIR}/bin/Release/NTBone.dll DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)

 拷贝程序到指定目录:

# -- Installing: /home/spring/GitHub/Linux_Code_Test/
#Samples_CMake/messy_usage/install/build.sh
install(PROGRAMS build.sh DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/install)

指定运行时加载的路径

SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
SET(CMAKE_INSTALL_RPATH "\${ORIGIN}/lib") #指定运行时动态库的加载路径,ORIGIN指运行文件所在目录
cmake 输出路径通常需要设置一下,这里记录一下:1.设置可执行文件的输出路径:SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin)2.静态库 lib 输出路径:set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../bin)3.动态库输出路径(注意这个放在最后):SET_TARGET_PROPERTIES(dllname PROPERTIES RUNTIME_O
cmake 输出路径 cmake 输出路径通常需要设置一下,这里记录一下:1.设置可执行文件的输出路径:SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/…/bin) 2.静态库 lib 输出路径:set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/…/bin) 3.动态库输出路径(注意这个放在最后):SET_TARGET_PROPERTIES(dllname PROPERTIES RUNTIME_OU
方式1.两种设置方式 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIR     CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。 CMake 使用方法     CMake的所有的语句都写在一个叫:CMakeLists.txt的文件中。当CMakeLists.txt文 二,cmake 自定义变量的方式: 主要有隐式定义和显式定义两种,前面举了一个隐式定义的例子,就是 PROJECT 指令,他会隐式的定义_BINARY_DIR 和_SOURCE_DIR 两个变量。 显式定义的例子我们前面也提到了,使用 SET 指令,就
CMake 构建系统中,可以使用 `CMAKE_INSTALL_PREFIX` 变量来指定安装目录。这个变量默认值为 `/usr/local`,可以在执行 `cmake` 命令时通过 `-DCMAKE_INSTALL_PREFIX=<path-to-install>` 选项来进行修改,其中 `<path-to-install>` 是你想要安装目录路径。 例如,如果你想要将安装目录设置为 `/opt/myproject`,可以使用以下命令: cmake -DCMAKE_INSTALL_PREFIX=/opt/myproject <path-to-source> 其中 `<path-to-source>` 是你的源代码路径。 然后在 `CMakeLists.txt` 文件中,可以使用 `install` 命令来安装文件,并指定安装目录。例如: install(TARGETS myproject DESTINATION bin) 这个命令会将 `myproject` 可执行文件安装到 `${CMAKE_INSTALL_PREFIX}/bin` 目录下,其中 `${CMAKE_INSTALL_PREFIX}` 就是你在 `cmake` 命令中设置安装目录