我用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
等)?
答案 0 :(得分:1)
如果在Linux中,请尝试
ldd /path/to/ffmpeg-binary
或
ldd `which ffmpeg`