2014-09-03 2 views
4

Я создаю небольшое приложение python, которое использует v4l на малине pi. После нескольких часов устранения неполадок я близок к ее установке. Мне просто нужно скомпилировать официальный драйвер V4L2.Официальный драйвер V4L2 для малины pi, как добавить флаги lrt в make-файл?

Я следую за этот учебник https://www.ics.com/blog/raspberry-pi-camera-module#.VAaCHqM0_YQ

Когда я добираюсь до шага макияжа я получаю эту ошибку: undefined reference to symbol 'clock_gettime'

Поиск Google говорит мне, что мне нужно «Добавить -lrt в список библиотек вы ссылаетесь на ", или помещаете его в make-файл. Я ничего не знаю о make и configure. Я пытался немного почитать, но я делаю это для работы и не успеваю пройти курс. Я не знаю, что делать ... Пожалуйста, помогите ...

Следует также упомянуть, что я просто не знаю, могу ли я изменить makefile или makefile.in или настроить? Я попытался разместить "-lrt" в make-файле, но сложно и сложно понять, куда его поместить.

Вот фактическая ошибка:

Making all in v4l2-compliance 
make[3]: Entering directory '/home/pi/v4l-utils/utils/v4l2-compliance' 
    CXXLD v4l2-compliance 
/usr/bin/ld: v4l2-test-buffers.o: undefined reference to symbol '[email protected]@ 
GLIBC_2.4' 
//lib/arm-linux-gnueabihf/librt.so.1: error adding symbols: DSO missing from com 
mand line 
collect2: ld returned 1 exit status 
Makefile:388: recipe for target 'v4l2-compliance' failed 
make[3]: *** [v4l2-compliance] Error 1 
make[3]: Leaving directory '/home/pi/v4l-utils/utils/v4l2-compliance' 
Makefile:347: recipe for target 'all-recursive' failed 
make[2]: *** [all-recursive] Error 1 
make[2]: Leaving directory '/home/pi/v4l-utils/utils' 
Makefile:386: recipe for target 'all-recursive' failed 
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory '/home/pi/v4l-utils' 
Makefile:315: recipe for target 'all' failed 
make: *** [all] Error 2 

Я пытался отредактировать Makefile и обнаружил, что читать «LIBS =», и я изменил его на «LIBS = -lrt», Это не сработало.

Я нашел линию 388 в Makefile это то, что он читает в этой области:

# This directory's subdirectories are mostly independent; you can cd 
# into them and run `make' without going through this Makefile. 
# To change the values of `make' variables: instead of editing Makefiles, 
# (1) if the variable is set in `config.status', edit `config.status' 
#  (which will cause the Makefiles to be regenerated when you run `make'); 
# (2) otherwise, pass the desired values on the `make' command line. 
$(RECURSIVE_TARGETS): 
    @fail= failcom='exit 1'; \ 
    for f in x $$MAKEFLAGS; do \ 
     case $$f in \ 
     *=* | --[!k]*);; \ 
     *k*) failcom='fail=yes';; \ 
     esac; \ 
    done; \ 
    dot_seen=no; \ 
    target=`echo [email protected] | sed s/-recursive//`; \ 
    list='$(SUBDIRS)'; for subdir in $$list; do \ 
     echo "Making $$target in $$subdir"; \ 
     if test "$$subdir" = "."; then \ 
     dot_seen=yes; \ 
     local_target="$$target-am"; \ 
     else \ 
     local_target="$$target"; \ 
     fi; \ 
     ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ 
     || eval $$failcom; \ 
    done; \ 
    if test "$$dot_seen" = "no"; then \ 
     $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ 
    fi; test -z "$$fail" 

Так что я попытался запустить сделать так: сделать CFLAGS = «- LRT», что ничего не делать , Я посмотрел на config.status, и это еще один запутанный файл.

+0

Я также имел проблемы с 'make' и после чтения файла README, который обнаружил, что необходимо запустить'/bootstrap.sh' перед тем '/ configure', то, что Ждут».. t, упомянутых в umm.com toturial. – SAMPro

ответ

2

Ну, я заплатил консультанту, и он сказал мне изменить два разных файла.

Первый файл:
/v4l-utils/utils/v4l2-compliance/Makefile

Второй файл:
/v4l-utils/utils/v4l2-ctl/Makefile

Изменить строку с "LDFLAGS =" на "LDFLAGS = -lrt"

После этого v4l2 компилируется отлично на Raspberry Pi.

2

Это тоже работает: -

LDFLAGS=-lrt ./configure 
make 

 Смежные вопросы

  • Нет связанных вопросов^_^