我有两个项目。项目“vDevice”编译成“libvDevice.so”。然后,该库由另一个项目“videoViewer”使用,该项目编译成二进制“app_videoViewer”。在我在vDevice的一个文件中添加对avdevice_reigster_all()
的调用之前,这些都正常工作。
vDevice.so编译并链接没有错误。在makefile中,我有-L${FFMPEG_PATH}
(所有libav * .a文件所在的位置),-l
avformat,avcodec,avutil,asound,avdevice和bz2(按此顺序)。
当我尝试制作videoViewer时,我收到此错误:
Linking application app_videoViewer ...
/path/to/lib/libvDevice.so: undefined reference to `avdevice_register_all'
collect2: error: ld returned 1 exit status
对于videoViewer,我在makefile中添加了相同的东西,链接到avformat,avcodec,avutil,asound,avdevice和bz2,所有这些都在vDevice之前...我错过了什么?