Мне нужно оптимизировать библиотеку G2O в https://github.com/RainerKuemmerle/g2o для ARM используя неоновые инструкции. Я выполняю свой код на компьютере ARMv7 под управлением Ubuntu.
Я редактировал основной Файл CMakesLists.txt и добавил параметры компилятора следующим образом
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. Что может быть не так? Я неправильно указываю параметры компилятора?
Задача ещё не решена.