我正在尝试为 GreenHills 编译器创建一个 cmake 工具链文件。当我使用cmake -T C:\ghs\multi506
一切正常。但是在使用该行创建工具链文件后,
set(GHS_TOOLSET_ROOT C:/ghs/multi506)
我收到错误消息:
CMake 错误:在 GHS_TOOLSET_ROOT "C:/ghs/multi506/" 中找不到 GHS 工具集
问题是什么?
我正在尝试为 GreenHills 编译器创建一个 cmake 工具链文件。当我使用cmake -T C:\ghs\multi506
一切正常。但是在使用该行创建工具链文件后,
set(GHS_TOOLSET_ROOT C:/ghs/multi506)
我收到错误消息:
CMake 错误:在 GHS_TOOLSET_ROOT "C:/ghs/multi506/" 中找不到 GHS 工具集
问题是什么?
-T
和的使用GHS_TOOLSET_ROOT
是挑剔的。这是因为试图保持与试图找到“最新”编译器的原始生成器实现的向后兼容性。
'-T' 采用绝对路径或相对路径。
-T C:\ghs\multi506
表示编译器在此目录中。它将包含 gbuild.exe 等。
-T multi506
将附加multi506
到GHS_TOOLSET_ROOT
. 因此CMake
会gbuild.exe
在C:\ghs\multi506
.
如果您不使用-T
,则启用自动搜索模式。CMake
将搜索名为 的目录comp_[^;]+
,这是 Green Hills 用于其编译器的命名方案,位于GHS_TOOLSET_ROOT
. 所以在这种情况下,它将寻找类似C:\ghs\multi506\comp_20210504
.
我更喜欢使用-T
编译器目录的绝对路径。