0

我已经用 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 平台定义未知)(但我已经编译并测试了它的 boost)

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

../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- 没有帮助...

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

4

1 回答 1

1

如果在 Linux 中,请尝试

ldd /path/to/ffmpeg-binary

或者

ldd `which ffmpeg`
于 2012-10-22T18:11:43.923 回答