以 x86sim
为目标运行 AI 引擎编译器时,编译器会忽略 --Xchess
选项。这表示,x86sim
流程不支持内核专用的编译选项。
请参阅以下示例以便更好地理解此注意事项。对 C 语言代码执行编译时修改的常用方法是使用预处理器指令,如 #ifndef
。要控制这些预处理器指令,最好通过命令行编译器选项来传递 #defines
。以下代码块示例基于预处理器指令执行两项不同的操作。
void example_kernel()
{
#ifdef SIM
printf("Simulation Mode\n");
#else
printf("Default Mode\n");
#endif
}
要在编译时使用 AI 引擎编译器以硬件为目标 (hw
) 来定义 SIM 宏,您可执行以下操作。
aiecompiler -target=hw -Xchess="example_kernel:-DSIM"
由于当编译目标设为 x86sim
时,会忽略 -Xchess
实参,因此对于 x86 仿真器不定义 SIM,并且内核输出为“Default Mode”(默认模式)。
如果需要为 x86 仿真器指定预处理器选项,可使用 aiecompiler -target=x86sim
--Xpreproc
替代 -Xchess
。值得注意的是,以此方式传递的任何选项会应用于所有源代码和所有目标流程。
选项 | 描述 |
---|---|
--Xchess=<string>
|
该选项可用于将内核专用选项传递给 CHESS 编译器,此编译器用于为每个 AI 引擎编译代码。 选项字符串指定为<kernel-function>:<optionid>=<value> 。在映射指定内核函数的 AI 引擎上编译生成的源文件期间包含该选项字符串。 |
--Xpreproc=<string>
|
该选项可用于将常规选项传递到 PREPROCESSOR 阶段,用于执行所有源代码的编译 ( --Xpreproc=-D<var>=<value>
|