共享库编译但具有未定义的引用

时间:2015-11-12 18:04:35

标签: c++ ffmpeg makefile

我有两个项目。项目“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之前...我错过了什么?

0 个答案:

没有答案