C 如何获取ffmpeg链接到的库列表(静态ffmpeg库)?
我已经用newt配置编译了Ffmpeg(1.0):C 如何获取ffmpeg链接到的库列表(静态ffmpeg库)?,c,compilation,linker,ffmpeg,libraries,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-encode
./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
已编译-无错误-标头和lib(static.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
-无帮助
我的问题是-如何获得ffmpeg链接到的库列表(如-lm
等) 如果在Linux中,请尝试
ldd /path/to/ffmpeg-binary
或
他无法编译他的应用程序;ldd(guess loader dependencies)仅列出已成功编译应用程序的共享库。是否也使用“-static”编译库?或者,对于“配置”脚本——启用静态选项。找到数学库的位置并将其添加到库路径“-L”中,然后重试。我认为您只是将它们按错误的顺序排列了。您需要将
-lm
添加到命令行的末尾,而不是开头。
ldd `which ffmpeg`