cmake中PROJECT_SOURCE_DIR的遐思

C++编译连接问题总结(cmake库连接设置、环境变量设置与查看、C++静态库与动态库、软连接与硬链接) 一、静态库与动态库 1.1 静态库与动态库 预编译 --> 编译 --> 汇编 --> 链接 (1)预编译,即预处理,主要处理在源代码文件中以“#”开始的预编译指令,如宏展开、处理条件编译指令、处理#include指令等。 (2)编译过程就是把预处理完的文件进行一系列词法分析、语法分析、语义分析以及优化后生成相应的汇编代码文件。 (3)汇编是将汇编代码转变成二进制文件。 (4)链接将二进制文件链接成一个可执行的命令,主要是把分散的数据和代码收集并合成一个单一的可加载并可执行.. 阅读详情
PROJECT_SOURCE_DIR为包含PROJECT()的最近一个CMakeLists.txt文件所在的文件夹。
如以下文件结构:
test
   |
   +-----build
   |   
   +-----include   
   |
   +-----lib
   |
   +-----src
              |             
              +main.cpp
              |            
              +CMakeLists.txt   
   |   
   +-----CMakeLists.txt

test/CMakeLists.txt文件内容为 

CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 
PROJECT(test) 
ADD_SUBDIRECTORY(src)

test/src/CMakeLists.txt文件内容为 

CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 
#PROJECT(main)

在build中执行cmake ..(两个小数点别丢了)则PROJECT_SOURCE_DIR的值为(parent_path)/test,
取消#PROJECT(main)的注释,PROJECT_SOURCE_DIR的值为(parent_path)/test/src


 

 

 


 

 

 

突破编程_C++_CMake(常用变量) CMake常用变量 阅读详情

相关推荐

CMake实战指南:深度解析PROJECT_SOURCE_DIR与CMAKE_SOURCE_DIR在多级项目中的差异与应用

本文深入解析CMake中PROJECT_SOURCE_DIR与CMAKE_SOURCE_DIR在多级项目中的差异与应用,帮助开发者避免路径混淆问题。通过实际案例和最佳实践,详细说明如何正确使用这两个关键变量来管理项目结构和资源引用,提升构建效率。

weixin_28833069的博客 630

CMake 变量

cmake变量

m0_38036750的博客 4071

cmake CMAKE_CURRENT_SOURCE_DIR和CMAKE_CURRENT_LIST_DIR的区别

特性适用文件仅所有 CMake 脚本(.cmake嵌套脚本中的行为始终指向顶层的目录指向当前脚本的实际目录动态性静态(同一文件内不变)动态(随当前执行文件变化)推荐使用场景仅在中引用同级文件通用(尤其在被包含的脚本中)

我的博客 3514

CMake PROJECT_SOURCE_DIR变量(使用project()命令指定项目名称时,CMakeLists.txt所在路径)PROJECT_BINARY_DIR变量,根目录下build目录

的默认值为项目根目录的路径(CMakeLists.txt所在的路径)。如果你使用的是子目录。是CMake内置变量之一,它代表当前项目根目录的路径。命令指定项目名称时,CMake会自动设置。将会是子目录的路径。

Dontla的博客 1万+

CMake:CMAKE_SOURCE_DIR,PROJECT_SOURCE_DIR,PROJECT_BINARY_DIR

如果一个顶层目录下只有一个工程,那么CMAKE_SOURCE_DIR和PROJECT_SOURCE_DIR表示的都是顶层目录,而PROJECT_BINARY_DIR就是${CMAKE_SOURCE_DIR}/build。可见PROJECT_SOURCE_DIR和PROJECT_BINARY_DIR是与。CMAKE_SOURCE_DIR:顶层CMakeLists.txt所在的目录。PROJECT_BINARY_DIR:当前工程的编译输出目录。PROJECT_SOURCE_DIR:当前工程的源码目录。

风静如云的博客 8471

DELPHI11 利用Android手机实现条码扫描功能

好了,整个过程全部结束,当然这只是最简单的例子,只是演示一下如何识别条码,更多的条码处理功能,比如优化,提速等需要在后面继续。安装过程中所有提示框全部按OK就可以,直到提示安装成功,那么ZXing库就成功完成了安装。点击红框标识的文件夹图标,将下载的ZXing库文件路径加入进来后,点ADD。第三步:选择下载的ZXing库路径,并按Ctrl + A进行全选,并导入。至此为止,我们的库才算是全部安装完成,可以在DELPHI 中正常引用了。2.打开相机,识别条码,并将条码内容显示在MEMO1中。

1529

CMake PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR的理解

官方的解释: PROJECT_BINARY_DIR contains the full path to the top level directory of your build tree PROJECT_SOURCE_DIR contains the full path to the root of your project source directory, i.e. to the nearest directory where CMakeLists.txt contains the PROJEC

斧冰 9862

【SerDes】美信GMSL2-CSI调试心得

美信GMSL2加解串器芯片家族广泛应用于车载和工业视觉系统。文章介绍了MAX96717/MAX96717F加串器和MAX96724/MAX96724R解串器的关键特性,包括支持MIPI CSI-2接口、6Gbps传输速率等功能。提供了基于高通平台的demo系统配置和调试步骤,重点阐述了Link Lock、PCLK检测和Video Lock等关键调试环节,并详细说明了像素模式,隧道模式的工作原理及寄存器配置示例。文中还包含通过I2C读写寄存器的具体操作指令,取流freeze可能原因和解决方法。

qq_38089448的博客 2479

CMake笔记之PROJECT_SOURCE_DIR、CMAKE_SOURCE_DIR、CMAKE_CURRENT_BINARY_DIR对比

— 2024-03-19。

小勇博客 3103

qt使用qxlsx实现xlsx、xls表格文件快速写入和读取

新年第二篇文章,收尾一个去年计划中发表文章和实现功能。

kbq的博客 1万+

保姆级教程:在Linux上用IGH EtherCAT主站搞定从站时钟同步(附sync_datagram报文详解)

本文详细介绍了在Linux系统上使用IGH EtherCAT主站实现从站时钟同步的保姆级教程,重点解析了sync_datagram报文的结构和工作原理。通过实战案例和代码示例,帮助开发者掌握微秒级同步精度的实现方法,适用于工业自动化领域的高精度设备协同控制。

weixin_30733003的博客 259

CMAKE常用内置变量解释:CMAKE_SOURCE_DIR/EXECUTABLE_OUTPUT_PATH/CMAKE_EXPORT_COMPILE_COMMANDS

前言: cmake的内置命令是不区分大小写的 因此add_subdirectory与ADD_SUBDIRECTORY作用一致。 cmake的所有变量都是区分大小写的 1、PROJECT_SOURCE_DIR 与 PROJECT_BINARY_DIR cmake系统预定义变量: 指定工程路径 PROJECT_SOURCE_DIR/CMAKE_SOURCE_DIR/_SOURCE_DIR: 为包含PROJECT()命令的最近一个CMakeLists.txt文件所在的文件夹路径。 PROJECT_BINAR

个人工作中学到的专业技术与职业发展知识笔记 2万+

深入浅出:拆解RK3588 DVP摄像头驱动框架,从DTS配置到V4L2子系统

本文深入解析RK3588 DVP摄像头驱动框架,从DTS配置到V4L2子系统的完整实现。详细介绍了瑞芯微RK3588的多媒体子系统架构、设备树配置逻辑、rkcif驱动与V4L2框架的交互机制,以及用户空间调试与性能优化技巧,帮助开发者解决DVP摄像头驱动中的常见问题。

weixin_42525632的博客 265

Are CMAKE_SOURCE_DIR and PROJECT_SOURCE_DIR the same in CMake?and CMAKE_BINARY_DIR?etc

There is a difference between these variables. CMAKE_SOURCE_DIR does indeed refer to the folder where the top-level CMakeLists.txt is defined. However, PROJECT_SOURCE_DIR refers to the folder of the C...

AplusX 1375

系统磁盘从MBR格式转换成GPT格式来升级win11

之前的《》中说到,需要把磁盘格式转化为MBR格式才能执行下去。问题是,win10升级win11要求启动方式为UEFI的话,磁盘格式不能为MBR。其实不升级也不影响啥,但是就是想好看点。所以花了点时间折腾了一下。我这是双系统,所以直接去A系统修复B系统的磁盘格式和引导。

qq_42520962的博客 9040

基于 PCL 的工业盒体点云精准分割

本文提出一种基于PCL点云库的工业盒体点云分割算法,采用由粗到精的分层策略解决传统方法在噪声、稀疏和堆叠场景下的分割问题。算法通过区域生长粗分割、RANSAC平面筛选、球面回溯补全、凹包边界提取和圆柱回溯精分割五大核心模块,充分利用盒体几何先验特征,实现高效精准的分割效果。文章详细阐述了算法流程、参数调优指南及工程化要点,指出该方法相比深度学习具有速度快、鲁棒性强、部署简单的优势。同时分析了算法在倾斜、异形目标上的局限性,并展望了结合深度学习特征的混合模型发展方向。该算法为工业自动化场景中的3D视觉检测提供

weixin_45196569的博客 171

CMake PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别

看了好多网上的文章,都说PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。 实际不然。 一般来说,都是这样用 cmake ./ 这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候,并不在源码的路径的话,比如 cmake ../src 这样的好处是cmake生成的文件...

jinzhu1911的专栏 7198

《PLECS仿真与实战:从建模到高端应用》-专栏文件目录

《PLECS仿真与实战:从建模到高端应用》是一本系统介绍PLECS电力电子仿真软件的实用指南。全书共10章,首先介绍软件安装与基础操作,包括RC电路仿真等入门内容;随后深入讲解各类电力电子电路的建模与仿真,涵盖整流、交交变换、直流变换、逆变等电路;最后探讨PWM控制建模和直流调速系统等高端应用。书中配有丰富的示例程序和波形分析方法,附录还包含电力电子器件、代码生成等实用资料。该书适合电力电子领域工程师和学生系统学习电路仿真技术。

540

CMake笔记:PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别

看了好多网上的文章,都说PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。 实际不然。 一般来说,都是这样用 cmake ./ 这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候,并不在源码的路径的话,比如 cmake …/src 这样的好处是cmake生成的文件和编译出来的东西,就不放在源码路径下了,保证了源码路径的干净整洁。 比如可以在src的同级目录下建立build目录。 然后在bu

南沙的星星 2036

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PROJECT_SOURCE_DIR与CMAKE_CURRENT_SOURCE_DIR

PROJECT_SOURCE_DIR和CMAKE_CURRENT_SOURCE_DIR的区别

优快云_RTKLIB的博客 686

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

CMake学习笔记(五)区分PROJECT_SOURCE_DIR, CMAKE_SOURCE_DIR和CMAKE_CURRENT_SOURCE_DIR

2.2 如果子目录的CMakeLists.txt没有使用project命令,则PROJECT_SOURCE_DIR等于上一层CMakeLists.txt的PROJECT_SOURCE_DIR。不论CMakeLists在根目录还是子目录,也不论CMakeLists.txt里面有没有调用project函数,CMAKE_SOURCE_DIR都等于根目录路径。1 根目录下的CMakeLists.txt的PROJECT_SOURCE_DIR等于根目录路径;sub2目录下的CMakeLists.txt。

liji_digital的博客 717

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PROJECT_SOURCE_DIR 和 CMAKE_SOURCE_DIR

PROJECT_SOURCE_DIR 和 CMAKE_SOURCE_DIR对比 在 CMake 中,PROJECT_SOURCE_DIR和CMAKE_SOURCE_DIR是两个非常重要的变量,它们都指向项目的源代码目录,但在多项目(子项目或多个 CMakeLists.txt 文件)的情况下,它们的值有所不同。 CMAKE_SOURCE_DIR 定义:CMAKE_SOURCE_DIR指向最顶层...

SurpassLi的专栏 1016

PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别

一般来说,都是这样用 cmake . 这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候,并不在源码的路径的话,比如 cmake ../src 这样的好处是cmake生成的文件和编译出来的东西,就不放在源码路径下了,保证了源码路径的干净整洁。 比如可以在src的同级目录下建立build目录。 然后在build目录下执行cmake ../src。 这样编译出来的东西和cmake生成的东西,都放到了build目录下了。并且 P

织席贩履之辈 3035

CMake2-变量4-常用内置变量3:PROJECT_SOURCE_DIR【当前工程的源码目录】、PROJECT_BINARY_DIR【】

的默认值为项目根目录的路径(CMakeLists.txt所在的路径)。是CMake内置变量之一,它代表当前项目。命令指定项目名称时,CMake会自动设置。如果你使用的是子目录。将会是子目录的路径。

u013250861的博客 1520
上一篇: Android Tips
下一篇: opencv知识点
刀么克瑟拉莫
博客等级 码龄14年 68粉丝 268原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀么克瑟拉莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值