gpt4 book ai didi

linux - 如何根据源代码制作可执行文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:05 24 4
gpt4 key购买 nike

我在linux上用C写了一些程序我想在许多安装了 fedora 或 ubuntu 的远程计算机上运行这些程序

我在本地机器上用 gcc 编译了程序,但是可执行文件在远程机器上无法运行。

例如:我用

gcc -o udp_server udp_server.c

在本地机器上获取一个可执行的二进制文件udp_server然后我将它复制到远程机器并在那里运行它,错误是:

-bash: ./udp_server:/lib64/ld-linux-x86-64.so.2: 错误的 ELF 解释器:没有这样的文件或目录


本地机器:fedoraFedora 发行版 16(凡尔纳)\m (\l) 上的内核\r3.6.10-2.fc16.x86_64 GNU/Linux

远程机器:Fedora 发行版 12(君士坦丁)\m (\l) 上的内核\r2.6.32-36.onelab.x86_64 GNU/Linux

在这些远程机器上,没有 gcc 编译器所以我希望我可以制作一些可执行文件,以便它们可以在那些远程机器上执行

那么我应该制作什么样的可执行文件,以及如何制作它们呢?任何推荐工具或程序?谢谢!

最佳答案

要运行用 C 编写的程序,您必须首先 compile它产生一个可执行文件。在 Linux 上,C 编译器通常是“Gnu C 编译器”或 gcc

如果您在 Linux 上编译 C 程序,它通常应该可以在任何其他 Linux 计算机上运行。但是,必须满足一些条件才能起作用:

  • 编译的可执行文件是为特定的处理器架构编译的。例如,如果您为 x86-x64 编译, 该程序将无法在 x86 或 PowerPC 上运行。
  • 如果程序使用共享库,则这些库必须安装在目标系统上。 C 库,“libc”随处安装,其他库可能没有。

关于如何编译:对于简单的程序,可以直接调用gcc。对于更复杂的程序,一些构建工具是可取的。有很多可供选择;两个流行的选择是 GNU make(传统解决方案)和 CMake .

分发程序:如果它只是一个单一的可执行文件,你可以只复制这个可执行文件。如果程序由多个文件(图像、数据文件等)组成,则应将其打包为一个软件包。这允许用户使用 package manager 安装它例如 RPM 或 dpkg。不同 Linux 发行版的各种打包指南中解释了如何执行此操作。

最后,一条建议:您似乎非常一般的软件开发,尤其是 C 语言。考虑阅读一些关于 C 语言编程的教程——这将回答这些(以及许多其他)问题。有无数的书籍和在线教程 - 我可以推荐 "The C book" ,由 gbdirect 提供。

关于linux - 如何根据源代码制作可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15294230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com