能否为Meson的compiles测试添加额外编译标志?
结论
当前版本已支持添加自定义编译标志,你需要的功能可以实现。
实现方案
从Meson 0.47.0版本开始,cc.compiles方法就支持传入额外编译参数,你可以直接通过args参数传入-mavx2即可。
另外你当前的测试代码存在语法错误,修正后的完整代码如下:
ret = cc.compiles(''' #include <immintrin.h> int main() { __m256i m = _mm256_set1_epi32(17); __m256i res = _mm256_srli_epi32(m, 8); return 0; } ''', args: ['-mavx2'])
补充说明
- 如果你需要适配MSVC编译器,AVX2对应的编译标志为
/arch:AVX2,可以先判断编译器类型再传入对应参数。 - 上述方法只能检测编译器是否支持AVX2编译,如果需要同时校验运行环境的CPU是否支持AVX2指令集,可以改用
cc.run()方法执行测试代码,根据返回值判断运行结果。
内容的提问来源于stack exchange,提问作者vela18
相关产品推荐
相关产品推荐

