选项兼容问题

一部分工程,会配置使用仅在GNU/Intel编译器工具链中支持的选项,针对这种情况使用毕昇编译器构建时,会发现如下格式的error:

1
clang: error: unknown argument: '-fdec-math'

此时需要在构建脚本中删去对应选项,或将其修改为毕昇编译器支持对应功能的选项(可以在源码根目录grep对应选项查看设置该选项的文件,并进行删除)。毕昇编译器从4.1.0起针对选项兼容新增处理,针对当前毕昇编译器不支持的选项:

此外毕昇编译器也针对若干选项兼容的特殊场景做了处理,详见下表:

问题

选项解释

建议适配动作

不支持-mabi=lp64

毕昇编译器默认为lp64,且在毕昇编译器中-mabi=选项是其他含义。

4.1.0起,会直接忽略并提示warning

不支持-freg-struct-return

aarch64上不支持对应功能

4.1.0起,会直接忽略并提示warning

不支持-znow -Wl,-z now

标准的写法应为-z now或是-Wl,-z,now

4.1.0起,支持该用法

不支持使用-std=指定非当前源码语言对应的语言标准,例如编译C语言源码时添加-std=c++11选项

毕昇不支持对应使用方法。

4.1.0起,可以通过添加-fGNU-compatibility选项支持该用法

不支持-x SSE2 -axSSE2等指定x86后端的选项

毕昇当前不支持对应使用方法,且aarch64不支持对应后端

4.1.0起,若已额外设置-mcpu选项,则以-mcpu选项为准,若未设置-mcpu选项,则自动替换为-mcpu=native

需要进行适配的选项包括但不限于上述选项,如您发现其他毕昇编译器不支持的选项,请及时向毕昇编译器团队反馈,反馈途径见问题反馈