树莓派官方V4L2驱动程序,如何将lrt标志添加到makefile?
我正在创建一个在树莓派上使用v41的小型python应用程序。经过几个小时的故障排除,我已经接近安装它了。我只需要编译官方V4L2驱动程序。树莓派官方V4L2驱动程序,如何将lrt标志添加到makefile?
我下面这个教程https://www.ics.com/blog/raspberry-pi-camera-module#.VAaCHqM0_YQ
当我到了化妆一步,我得到这个错误:undefined reference to symbol 'clock_gettime'
谷歌搜索告诉我,我需要“-lrt添加到库列表你链接到“,或者把它放在makefile中。我对制作和配置一无所知。我尝试阅读一些内容,但是我正在为此工作,并没有时间参加课程。我不知道该怎么办...请帮助...
我还应该提到,我只是不知道我是否要更改makefile或makefile.in或配置?我试图将"-lrt"
放置在makefile中,但找出它的位置很复杂和令人困惑。
下面是实际的错误:
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 =“ - 轻轨”,那什么也没做。 我看着config.status,这是另一个令人困惑的文件。
我付了一个顾问,他让我改变两个不同的文件。
第一个文件:/v4l-utils/utils/v4l2-compliance/Makefile
第二个文件:/v4l-utils/utils/v4l2-ctl/Makefile
更改为 “LDFLAGS =” 到 “LDFLAGS = -lrt”
的行V4L2后刚刚编译罚款树莓派。
这工作太: -
LDFLAGS=-lrt ./configure
make
我也有问题'make'和阅读自述文件后发现,必须运行'/ bootstrap.sh'前'/ configure',一些没”。 t在ics.com toturial中提到。 – SAMPro 2016-07-19 06:19:00