我需要使用氖指令在https://github.com/RainerKuemmerle/g2o处为ARM优化库g2o。我在运行Ubuntu的ARMv7机器上运行我的代码。
我编辑了主CMakesLists.txt file并添加了编译器选项,如下所示
set(ARM_CXX_FLAGS "--march=armv7-a -mfloat-abi=softfp -mfpu=neon")
并编辑了行
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${g2o_CXX_FLAGS}")
到
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${g2o_CXX_FLAGS} ${ARM_CXX_FLAGS }")
之后我能够加入
#include <arm_neon.h>
和其中一个文件中的一些示例矢量化代码,并执行cmake并成功完成。但是当我尝试通过命令
在根文件夹中使用输入文件执行cli应用程序时./g2o -v ../input_file
我收到的错误是其他一些完全不同的库遗失了。
# Used Compiler: GNU /usr/bin/c++
bool g2o::DlWrapper::openLibrary(const string&) Cannot open library: libGL.so.1: cannot open shared object file: No such file or directory
bool g2o::DlWrapper::openLibrary(const string&) Cannot open library: libcholmod.so.2.1.2: cannot open shared object file: No such file or directory
bool g2o::DlWrapper::openLibrary(const string&) Cannot open library: libcxsparse.so.3.1.2: cannot open shared object file: No such file or directory
bool g2o::DlWrapper::openLibrary(const string&) Cannot open library: libcxsparse.so.3.1.2: cannot open shared object file: No such file or directory
如上所述,在进行CMakeLists.txt中的更改之前,应用程序运行正常。我无法理解导致这种情况的原因,因为我没有在CMakesLists文件中进行任何其他更改。怎么可能出错?我给编译器选项错了吗?