我正在尝试使用gcc版本4.4.3在ubuntu 10.1 linux机器上构建ffmpeg源代码。
我有兴趣在ffmpeg.c中使用av_transcode()函数“,所以我已经注释了ffmpeg.c的主要功能。
gcc $(LD_LIBRARY_PATHS)-Wl,-Bsymbolic -Wl,-E -o ffmpeg_g ffmpeg.o cmdutils.o -lavdevice -lavformat -lavcodec -lswscale -lavutil -lz -pthread -lm -lx264 -lm -lasound - lasound -lasound -ldl
我收到以下链接错误
+++++++++++++++++++++++++++++++++++++++++++++++ ++
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o:在函数_start':
(.text+0x20): undefined reference to
main'中
collect2:ld返回1退出状态
make: * [ffmpeg_g]错误1
++++++++++++++++++++++++++++++++++++++++++++++++++
在我的MacOS(雪豹)上也观察到相同的行为。
如此简短的问题,如何告诉gcc编译器我正在构建这个源代码来创建库?
答案 0 :(得分:0)
gcc -shared
如果你正在尝试构建一个共享库,否则只需使用ar
将编译好的对象捆绑在一起。
但你真的应该阅读How To Write Shared Libraries(PDF)和许多其他文档,这样你才能理解为什么上述有时会在没有-fPIC
的情况下失败等等。