gpt4 book ai didi

ffmpeg - 链接主程序时,我的共享库中未定义的 FFMPEG 引用

转载 作者:行者123 更新时间:2023-12-04 22:52:37 28 4
gpt4 key购买 nike

我建立了一个引用 FFMPEG 的共享库。图书馆。我很难链接最终的应用程序。我已经为图书馆的订单摆弄了几个小时,但没有快乐。

g++ -o testVideoTranscode testVideoTranscode.o /usr/lib/libstdc++.so.6 -L../../../lib3p -lavutil  -lswresample -lavcodec -L../../../lib -ldvsutils -ldvscfg -ldvstc -lstdc++ -lmch264dec -lfreeimage -lpthread

../../../lib/libdvstc.so: undefined reference to `sws_getContext(int, int, AVPixelFormat, int, int, AVPixelFormat, int, SwsFilter*, SwsFilter*, double const*)'
../../../lib/libdvstc.so: undefined reference to `av_frame_alloc()'
../../../lib/libdvstc.so: undefined reference to `avcodec_close(AVCodecContext*)'
etc etc

例如,缺少一个符号 av_frame_alloc() , 在 ibavutil.so 中是正确的库(尽管在非标准位置):
nm -D ../../../lib3p/libavutil.so | grep av_frame_alloc
00021360 T av_frame_alloc

我的图书馆, libdvstc.so ,正确显示对符号和文件的引用:
nm -D --demangle ../../../lib/libdvstc.so | grep av_frame_alloc
U av_frame_alloc()

ldd ../../../lib/libdvstc.so
linux-gate.so.1 => (0xb77c3000)
libavutil.so.55 => /mnt/swdevel/DVStor/source_build/lib3p/libavutil.so.55 (0xb772f000)
libswresample.so.2 => /mnt/swdevel/DVStor/source_build/lib3p/libswresample.so.2 (0xb7714000)
libavcodec.so.57 => /mnt/swdevel/DVStor/source_build/lib3p/libavcodec.so.57 (0xb623f000)
libstdc++.so.5 => /usr/local/dvstor/lib/libstdc++.so.5 (0xb616f000)
libm.so.6 => /lib/libm.so.6 (0xb6144000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6126000)
libc.so.6 => /lib/libc.so.6 (0xb5f8f000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb5f74000)
librt.so.1 => /lib/librt.so.1 (0xb5f6b000)
libdl.so.2 => /lib/libdl.so.2 (0xb5f65000)
libz.so.1 => /lib/libz.so.1 (0xb5f51000)
/lib/ld-linux.so.2 (0x00871000)

它都在那里。我被困住了...

最佳答案

在 FFmpeg header 的包含语句周围使用 extern "C":

extern "C" {
#include <libavutil/avutil.h>
#include <libswscale/swscale.h>
[etc]
}

大多数库都会为您这样做,但 FFmpeg 不会,出于某种哲学原因。

关于ffmpeg - 链接主程序时,我的共享库中未定义的 FFMPEG 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34242698/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com