我是新来的cmake,最近,我的程序不能在另一个设备上运行,我发现原因是编译标志-march=native
默默添加(找到PCL
库来做),我通过在 flags.make 中将-march
的值从native修改为x86-64CXX_FLAGS
来验证它。(破解这个文件,因为我找不到一种方法来改变它在cmake文件通过设置CMAKE_CXX_FLAGS或add_compile_options)。
一个字,编译标志-march=native
由PCL
库通过find_package添加。
- 问题 *
我想在cmake中把它改成-march=x86-64
,怎么做?
Ps:尝试将-march=x86-64
添加到CMAKE_CXX_FLAGS
或add_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
获胜。
1条答案
按热度按时间xhv8bpkk1#
首先,感谢@Tsyvarev和@Lack提供的有用建议。
我通过添加
-DPCL_ENABLE_MARCHNATIVE=False -DPCL_ENABLE_SSE=False ..
从stretch重新编译PCL
解决了这个问题,如下命令:字符串
这可以从最终标志中删除
-march=native
,这将在其他设备上工作,我测试了它。另外,有人说只需要
-DPCL_ENABLE_SSE=False
,因为我的PCL
版本是1.10.1
,而PCL_ENABLE_MARCHNATIVE
还没有推出。