为 TriCore 构建包

警告

此功能是实验性的,可能会发生重大更改。有关更多信息,请参阅 Conan 稳定性 部分。

TriCore 是一种嵌入式微控制器架构,用于汽车等多个领域。 有多种 TriCore 编译器,其中一些可以在 此处 找到。 还有针对 TriCore 的 gcc 实现; 这就是我们将在此页面上的示例中使用的内容。

从 Conan 2.7 开始,对该架构提供了一些内置支持

  • 默认 settings.yml 包含架构:'tc131', 'tc16', 'tc161', 'tc162', 'tc18'

  • CMakeToolchain 为这些架构定义 CMAKE_SYSTEM_NAME=Generic-ELFCMAKE_SYSTEM_PROCESSOR=tricore

  • 编译器标志 -m<architecture>" 作为编译器和链接器标志注入到 CMakeToolchainAutotoolsToolchain

这意味着可以定义一个如下所示的 profile

tricore.profile
[settings]
os=baremetal
arch=tc162
compiler=gcc
compiler.version=11
compiler.cppstd=20
compiler.libcxx=libstdc++11

[options]
*:fPIC=False
*:shared=False

[conf]
tools.build:compiler_executables={"c":"tricore-elf-gcc","cpp":"tricore-elf-g++"}

这假定编译器已安装在系统路径中,其可执行文件名为 tricore-elf-gcctricore-elf-g++。 然后,使用此 profile 交叉构建并为 TriCore 创建一个包,例如默认的 cmake_lib

$ conan new cmake_lib -d name=mypkg -d version=0.1
$ conan create . -pr=tricore.profile

注意

  • 此支持是新的且实验性的。 请在 https://github.com/conan-io/conan/issues 上创建一个 ticket 以提供任何反馈或问题

  • 链接应用程序(例如,如果使用 conan new cmake_exe)需要特定的链接器脚本、入口点定义等。 尝试如上所述构建它将产生链接错误。 我们将尝试为这种情况添加更多示例。