我已经用 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 列表?