CMake笔记——三
-
若是一个
CMake
选项,那么在命令行设置的ON或OFF,而在脚本中需要使用set来开启ON或OFF,- 若是自定义的OPTION,则在命令行设置的ON或OFF,则在脚本中是通过OPTION来开启ON或OFF -
若命令行和脚本都设置参数,以最后一次的设置为主
-
判断命令行是否定义的方法是使用
if (not defined ...)
,之后可以进行设置if(NOT DEFINED OROCOS_TARGET) # 如果没有设置,则使用默认值 set(OROCOS_TARGET "gnulinux") # 这里 "gnulinux" 是默认值,你可以根据需要更改它 endif()
-
所有的cmake的默认变量,以
CMAKE_
打头的,都可以通过set
来重新定义 -
set指定变量内容时,是否使用双引号,取决于
字符串中是否包含空格或特殊字符,以及你希望如何解释这个值。
,若只是简单的标识符,cmake会将它转化为字符串。-
在以下情况下,双引号就变得重要了
-
值包含空格:如果字符串值包含空格,那么你必须用双引号括起来,否则 CMake 会将空格视为值之间的分隔符。
-
通过使用双引号并不会阻止变量替换,如
${ABC}
,仍然可以获取ABC的变量的值 -
保持一致性:在某些项目或团队中,为了代码的一致性和可读性,可能会规定所有字符串值都用双引号括起来,即使它们不是必需的。
-
特殊字符:如果字符串包含特殊字符(如 $, @, # 等),在某些上下文中使用双引号可能有助于避免解释错误。
-
-
-
交叉编译是在一种架构的机器上为另一种架构的机器编译代码
-
交叉编译与本地编译的区别:
记住,交叉编译是在一种架构的机器上为另一种架构的机器编译代码。而本地编译则是在目标机器上直接编译代码。在你的例子中,/usr/local/ti-sdk-am335x-evm/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-gcc
是用于在 x86 架构的宿主机上为 ARM 架构的设备编译代码的交叉编译器。
CMAKE_FIND_ROOT_PATH
在 CMake 中具有特定的作用,主要用于指定在搜索文件系统项(如库文件、头文件等)时应优先考虑的一组根路径。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?