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 中具有特定的作用,主要用于指定在搜索文件系统项(如库文件、头文件等)时应优先考虑的一组根路径。
posted @   绍荣  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示