CMake: не связывать уже существующие библиотеки, когда добавлены опции компилятора arm neon

Мне нужно оптимизировать библиотеку 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. Что может быть не так? Я неправильно указываю параметры компилятора?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]