如何获取ffmpeg链接到(静态ffmpeg库)的库列表?

时间:2012-10-22 18:09:54

标签: c compilation linker ffmpeg libraries

我用newt配置编译了Ffmpeg(1.0):

./configure  --disable-doc  --disable-ffplay --disable-ffprobe  --disable-ffserver    --disable-avdevice   --disable-avfilter   --disable-pthreads  --disable-everything --enable-muxer=flv --enable-encoder=flv --enable-encoder=h263 --disable-mmx  --disable-shared   --prefix=bin/  --disable-protocols --disable-network --disable-debug  --disable-asm --disable-stripping

它已编译 - 没有错误 - 标头和库(静态.a)已到位。 (特殊实验性的cigwin,实验性gcc,没有asm选项,并且没有ffmpeg平台定义)(但我已经编译并测试了它的增强)

现在我尝试编译我的应用程序。我得到下一个例外:

../ffmpeg-1.0/bin/lib/libavcodec.a: error: undefined reference to 'exp'
../ffmpeg-1.0/bin/lib/libavcodec.a: error: undefined reference to 'log'

我的编译器构建行如下所示:

g++ -static -emit-swf -o CloudClient.swf  -I../boost/boost_libraries/install-dir/include -I../ffmpeg-1.0/bin/include -L../boost/boost_libraries/install-dir/lib -L../ffmpeg-1.0/bin/lib \
    timer.o \
    audio_encoder.o \
    audio_generator.o \
    video_encoder.o \
    video_generator_rainbow.o \
    simple_synchronizer.o \
    multiplexer.o \
    transmitter.o \
    graph_runner.o \
    cloud_client.o \
    -pthread \
    -lswscale \
    -lavutil \
    -lavformat \
    -lavcodec \
    -lboost_system \
    -lboost_date_time \
    -lboost_thread 

所以当你看到相当复杂的时候我已经编译并准备好所有目标文件了......只留下一件事 - 将它全部链接到ffmpeg(从使用boost编译的ffmpeg版本条带化)

尝试添加-lm - 没有帮助......

那么我的问题是 - 如何获取链接到的库ffmpeg列表(如-lm等)?

1 个答案:

答案 0 :(得分:1)

如果在Linux中,请尝试

ldd /path/to/ffmpeg-binary

ldd `which ffmpeg`