为 TriCore 构建包¶
警告
此功能是实验性的,可能会有破坏性更改。 有关更多信息,请参见Conan 稳定性部分。
TriCore 是一种嵌入式微控制器架构,用于汽车等多个领域。 TriCore 有多种编译器,其中一些可以在此处找到。 还有用于 TriCore 的 gcc
实现; 这就是我们将在本页示例中使用的。
自从 Conan 2.7 以来,对此架构有一些内置支持
默认的
settings.yml
包含以下架构:'tc131', 'tc16', 'tc161', 'tc162', 'tc18'
CMakeToolchain
为这些架构定义CMAKE_SYSTEM_NAME=Generic-ELF
和CMAKE_SYSTEM_PROCESSOR=tricore
编译器标志
-m<architecture>"
作为编译器和链接器标志注入到CMakeToolchain
和AutotoolsToolchain
中
这意味着可以定义类似以下的配置文件
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-gcc
和 tricore-elf-g++
。 然后,使用此配置文件交叉构建并为 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 中创建一个 issue,以提供任何反馈或问题
链接应用程序(例如使用
conan new cmake_exe
)需要特定的链接器脚本,入口点的定义等。 尝试以上述方式构建它将产生链接错误。 我们将尝试为此案例添加更多示例。