如何更改cmake中PCL添加的'-march=native'编译标志

6fe3ivhb  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(88)

我是新来的cmake,最近,我的程序不能在另一个设备上运行,我发现原因是编译标志-march=native默默添加(找到PCL库来做),我通过在 flags.make 中将-march的值从native修改为x86-64CXX_FLAGS来验证它。(破解这个文件,因为我找不到一种方法来改变它在cmake文件通过设置CMAKE_CXX_FLAGS或add_compile_options)。
一个字,编译标志-march=nativePCL库通过find_package添加。

  • 问题 *

我想在cmake中把它改成-march=x86-64,怎么做?
Ps:尝试将-march=x86-64添加到CMAKE_CXX_FLAGSadd_compile_options,通过检查 flags.make 不起作用,其中CXX_FLAGS是:

CXX_FLAGS = -march=x86-64 -O3 -DNDEBUG -fPIC -march-native -msse4.2 -mfpmath=sse -std=gnu++14

字符串
字母-march=native获胜。

xhv8bpkk

xhv8bpkk1#

首先,感谢@Tsyvarev和@Lack提供的有用建议。
我通过添加-DPCL_ENABLE_MARCHNATIVE=False -DPCL_ENABLE_SSE=False ..从stretch重新编译PCL解决了这个问题,如下命令:

cmake -DCMAKE_BUILD_TYPE=Release -DPCL_ENABLE_MARCHNATIVE=False -DPCL_ENABLE_SSE=False ..

字符串
这可以从最终标志中删除-march=native,这将在其他设备上工作,我测试了它。
另外,有人说只需要-DPCL_ENABLE_SSE=False,因为我的PCL版本是1.10.1,而PCL_ENABLE_MARCHNATIVE还没有推出。

相关问题