C ++ API для малины pi камера не работает

Я новичок в R-pi. Мне нужно использовать пикам. Работая с cpp, я узнал, что для этого уже есть API. Я использую ссылку API здесь: http://www.uco.es/investiga /grupos /ava /node /40 . Кто-нибудь использовал его раньше, потому что я не могу запускать свою программу даже при использовании cmake, например:

#

cmake_minimum_required (версия 2.8) project (project_name) find_package (path_to_raspicam ТРЕБУЕТСЯ) add_executable (project project.cpp)
target_link_libraries (проект $ {raspicam_LIBS})

###############################.

Также, если я собираюсь использовать команду gcc, например:

g ++ project.cpp -o project -I /usr /local /include -lraspicam -lmmal -lmmal_core -lmmal_util

нет ничего подобного: «-I /usr /local /include -lraspicam -lmmal -lmmal_core -lmmal_util»

Скажите, пожалуйста, как включить библиотеку и создать исполняемый файл. Заранее спасибо.

4 голоса | спросил dp01 24 J000000Sunday16 2016, 08:48:29

2 ответа


3

Я загрузил API, скомпилировал его в соответствии с инструкциями на этой странице . Затем я использовал примерный код приложения (на той же странице) и попытался скомпилировать его в соответствии с их инструкциями с помощью:

g++ simpletest_raspicam.cpp -o simpletest_raspicam -I/usr/local/include -lraspicam -lmmal -lmmal_core -lmmal_util

Это дало мне следующие ошибки:

/usr/bin/ld: cannot find -lmmal
/usr/bin/ld: cannot find -lmmal-core
/usr/bin/ld: cannot find -lmmal_util
collect2: error: ld returned 1 exit status

Google нашел меня этой страницы , в котором предлагается добавить подсказка для компоновщика, где находятся библиотеки mmal, например:

-L/opt/vc/lib

Я добавил, что моей компиляционной команде это сделать:

g++ simpletest_raspicam.cpp -o simpletest_raspicam -I/usr/local/include -L/opt/vc/lib -lraspicam -lmmal -lmmal_core -lmmal_util

... и он скомпилирован успешно.

ответил KennetRunner 24 J000000Sunday16 2016, 14:11:40
2
  

нет ничего подобного: «-I /usr /local /include -lraspicam -lmmal -lmmal_core -lmmal_util»

Как отмечает KennetRunner, это связано с тем, что эти библиотеки не находятся в пути по умолчанию для компоновщика. Если вы не хотите продолжать использовать -L/opt/vc/lib, вы также можете:

sudo touch /etc/ld.so.conf.d/opt-vc.conf

Затем отредактируйте этот файл (через sudo whatever или sudoedit или просто su, чтобы сделать все это), чтобы включить строку:

/opt/vc/lib

Затем запустите sudo ldconfig, чтобы обновить кеш компоновщика и проверить,

sudo ldconfig -p | grep mmal 

(см. man ldconfig about -p ). Вы должны увидеть несколько строк об этих библиотеках.

Если база C также полезна (в дополнение к библиотеке обертки C ++ в /usr/local/include), это не будет быть в пути компилятора , поэтому вы можете использовать -I /opt/vc/include или добавить в свою среду:

CPLUS_INCLUDE_PATH=/opt/vc/include

Если у вас уже есть такой набор путей, вы можете развернуть его так, как вы могли бы расширить обычную переменную пути (например, CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/opt/vc/include).

ответил goldilocks 24 J000000Sunday16 2016, 15:28:45

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132