我正在尝试为GreenHills编译器创建一个cmake工具链文件。当我使用cmake -T C:ghsmulti506
时,一切都很好。但是在创建工具链文件之后set(GHS_TOOLSET_ROOT C:/ghs/multi506)
我得到错误信息:
CMake Error:没有li工具集在li_TOOLSET_ROOT "C:/li/multi506/">
有什么问题吗?
-T
和GHS_TOOLSET_ROOT
的使用是讲究的。这是因为试图保持与原始生成器实现的向后兼容性,试图找到"最新的";编译器。
'-T'接受绝对路径或相对路径。
-T C:ghsmulti506
表示编译器在此目录中。它将包含gbuild.exe等。
-T multi506
将multi506
追加到GHS_TOOLSET_ROOT
。因此,CMake
将在C:ghsmulti506
中查找gbuild.exe
。
如果你不使用-T
,那么自动搜索模式是启用的。CMake
将在GHS_TOOLSET_ROOT
中搜索名为comp_[^;]+
的目录,这是Green Hills为其编译器使用的命名方案。所以在本例中,它将寻找类似C:ghsmulti506comp_20210504
的内容。
我更喜欢使用-T
和编译器目录的绝对路径。