尝试构建 ffmpeg 源代码以制作独立库时出现链接错误

发布于 2024-10-11 12:27:41 字数 716 浏览 0 评论 0原文

我正在尝试使用 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):未定义对 main' 的引用 Collect2: ld 返回 1 退出状态 make: * [ffmpeg_g] 错误 1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++

在我的 MacOS(雪豹)上也观察到相同的行为。

所以简而言之,我如何告诉 gcc 编译器我正在构建这个源代码来创建库?

I am trying to build ffmpeg source code on ubuntu 10.1 linux machine with gcc version 4.4.3.

I am interested in making av_transcode() function in ffmpeg.c available", So I have commented out the main function of 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

I am getting below linking errors

+++++++++++++++++++++++++++++++++++++++++++++++++
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o: In function _start':
(.text+0x20): undefined reference to
main'
collect2: ld returned 1 exit status
make: * [ffmpeg_g] Error 1
++++++++++++++++++++++++++++++++++++++++++++++++++

The same behavior is observed On my MacOS (snow leopard) as well.

SO putting the question short, How can I tell gcc compiler that I am building this source code to make library?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷雾森÷林ヴ 2024-10-18 12:27:41

gcc -shared 如果您尝试构建共享库,否则只需使用 ar 将已编译的对象捆绑在一起。

但你真的应该去阅读如何编写共享库 (PDF) 和许多其他文档,以便您了解为什么上面的方法有时会在没有 -fPIC 等的情况下失败。

gcc -shared if you're trying to build a shared library, otherwise just use ar to bundle the compiled objects together.

But you really should go read How To Write Shared Libraries (PDF) and lots of other documentation, so that you understand why the above will sometimes fail without -fPIC and so on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文