首页 > 其他分享 >【CMake】target file 生成路径

【CMake】target file 生成路径

时间:2023-02-03 10:44:23浏览次数:38  
标签:set CMake target CMAKE file DIRECTORY OUTPUT ARCHIVE

  • CMake针对不同类型生成器,参数有所差异,主要区别一下两类生成器:

    1. 单配置生成器()
    2. 多配置生成器(multi-configuration generators): VS、Xcode 等
  • target:cmake可构建三种 target files : archive, library, 和 runtime.

    • Executables 总是 runtime targets.
    • Static libraries 总是 archive targets.
    • Module libraries总是 library targets.
    • 对 non-DLL 平台,shared libraries 是 library targets.
    • 对 DLL 平台, DLL 是 runtime target, 对应的导入库是 archive target. All Windows-based systems including Cygwin 都是 DLL 平台.

1.静态库 配置路径

  • CMAKE_ARCHIVE_OUTPUT_DIRECTORY : 用于初始化所有静态库的 ARCHIVE_OUTPUT_DIRECTORY
  • CMAKE_ARCHIVE_OUTPUT_DIRECTORY_<CONFIG> : 用于初始化所有静态库指定 构建类型 的 ARCHIVE_OUTPUT_DIRECTORY ,CONFIG 取值:DEBUG\RELEASE等
  • ARCHIVE_OUTPUT_DIRECTORY :指定某一静态库的生成文件夹
  • ARCHIVE_OUTPUT_DIRECTORY_<CONFIG> :指定某一静态库指定构建类型的生成文件夹

范例:

# 设置静态库的输出目录(选择使用下面的代码)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/out)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/out/DEBUG)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/out/RELEASE)

set(ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/out)
set(ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/out/DEBUG)
set(ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/out/RELEASE)

2.动态库 配置路径

和静态库类似,将ARCHIVE 换成 LIBRARY

  • CMAKE_LIBRARY_OUTPUT_DIRECTORY : 用于初始化所有动态库的 ARCHIVE_OUTPUT_DIRECTORY
  • CMAKE_LIBRARY_OUTPUT_DIRECTORY_<CONFIG> : 用于初始化所有动态库指定 构建类型 的 ARCHIVE_OUTPUT_DIRECTORY ,CONFIG 取值:DEBUG\RELEASE等
  • LIBRARY_OUTPUT_DIRECTORY :指定某一动态库的生成文件夹
  • LIBRARY_OUTPUT_DIRECTORY_<CONFIG> :指定某一动态库指定构建类型的生成文件夹

3.可执行文件 配置路径

  • CMAKE_RUNTIME_OUTPUT_DIRECTORY : 用于初始化所有可执行文件的 ARCHIVE_OUTPUT_DIRECTORY

  • CMAKE_RUNTIME_OUTPUT_DIRECTORY_<CONFIG> : 用于初始化所有 可执行文件 指定 构建类型 的 ARCHIVE_OUTPUT_DIRECTORY ,CONFIG 取值:DEBUG\RELEASE等

  • RUNTIME_OUTPUT_DIRECTORY :指定某一可执行文件的生成文件夹

  • RUNTIME_OUTPUT_DIRECTORY_<CONFIG> :指定某一可执行文件指定构建类型的生成文件夹

  • EXECUTABLE_OUTPUT_PATH :如果设置了 RUNTIME_OUTPUT_DIRECTORY ,则该变量无效,否则可执行文件将放在 EXECUTABLE_OUTPUT_PATH 中

LIBRARY_OUTPUT_PATH

Old library location variable.

The target properties ARCHIVE_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_DIRECTORY, and RUNTIME_OUTPUT_DIRECTORY supersede this variable for a target if they are set. Library targets are otherwise placed in this directory.

标签:set,CMake,target,CMAKE,file,DIRECTORY,OUTPUT,ARCHIVE
From: https://www.cnblogs.com/zjacky/p/17088203.html

相关文章

  • [golang]filepath.Glob的缺陷,不支持多级目录
    最近在使用Gin框架的模板加载过程中,发现其对于多级子目录中的模板支持有问题(仅仅支持一级子目录),后经过查看其源码发现是filepath包的Glob方法的问题。下面先说结论:多......
  • Dockerfile 从入门到放弃
    目录浅言碎语Dockerfile基本结构Dockerfile指令FROMARGARG指令生效范围证明FROM之前的ARG对FROM后的构建不生效证明FROM之前的ARG对当前Dockerfile内所有F......
  • 解决Driver files are not downloaded
    报错 原因: 然后切换到IDEA继续操作,将下载好的jar包加入到idea中1 2 3 4 5 6 最后再重写配置数据库连接,测试通过,完美解决问题......
  • 如何提取指定镜像的 Dockerfile
    目录Dockerhistorydockercontainerd总结dfimage构建whaler镜像使用dfimage或whalerdocker的方式containerd的方式前期没有归档Dockerfile?亦或者Dockerfile......
  • 解决执行mvn spring-boot:run报错jar时出错; zip file is empty
    问题描述在执行mvnspring-boot:run的时候,报错[ERROR]读取/Users/diandianxiyu_geek/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.54/tomcat-embed-......
  • Could not find a declaration file for module ‘xxx‘ (vue3+ts)
    vue3+ts框架搭建过程中遇到引入三方qs库出现eslitn提示'Couldnotfindadeclarationfileformodule‘qs‘';解决方案方案1:npmi--save-dev@types/qs此处......
  • jenkinsfile与项目做隔离
    @Library('siheng-devops')_pipeline{agent{label'jnlp-slave'}options{timeout(time:200,unit:'MINUTES')gitLabConnection('gi......
  • cmake
    目录cmakecmakedemo根目录3rdsrctestcmake语法知识cmakecmakedemo根目录${PROJECT_SOURCE_DIR}根目录下CMakelists.txt#指定CMake编译最低要求版本CMAKE_MINIMU......
  • 关于LFI(Local File Inclusion)漏洞的利用
    LFI(localfileinclusion)漏洞是.php文件里include、require、once等函数不恰当使用引起的这个漏洞允许攻击者暴露目标服务器上的文件,在目录遍历(../)的帮助下,可以使攻击者访......
  • Google的三架马车--Google File System (GFS)
    背景介绍国际方面,数据库理论研究起步于20世纪60年代,并于20世纪70年代开始产业化,逐步形成了成熟的IOE(IBM提供硬件,Oracle提供数据库软件,EMC提供存储介质)应用模式,开始占领全......