如何解决exe 文件未在 ubuntu 14 (gcc 4.9.4) 中运行,该文件在 ubuntu 20.04 (gcc 9.3.0) 中编译
我已经在 ubuntu 20.04、GCC - 9.3.0 中编译了我的 .c 文件并使其可执行。该 .exe 在 ubuntu 20.04 中正常运行,但我想将其转移到 Ubuntu 14、gcc-4.9.4 并在那里运行。但是那个文件没有在 ubuntu 14 中运行。有没有办法在旧版本的 ubuntu 中运行那个 .exe 文件?并且请您解释是什么阻碍了该 .exe 文件在 ubuntu 14 中运行。
谢谢!!!
解决方法
通常一个 .c 文件,一旦编译,不包含所有它需要的代码;它包含一些可以找到必要程序的指标。这允许更好的代码管理(你更新一个库,所有使用它的文件会发现它们会自动更新。你有一百个使用同一个 10-meg 库的可执行文件,你最终使用了 10 MB 的磁盘1 GB)。
因此,如果您使用函数读取 JPEG 文件,则该代码不会在可执行文件中,但可执行文件将包含加载 JPEG 库所需的信息。并将按名称指定它。您可以使用 ldd
实用程序看到这一点。
由于不同版本的操作系统可能有不同的库,或者根本没有安装某些库,可执行文件不会在那里运行,因为它缺乏这样做的方法。
您几乎总是可以通过要求 C 编译器生成一个静态链接文件来避免这种情况,即包含它需要的所有库的文件。你最终会得到一个更大的二进制文件,它可以在更多的操作系统上运行(在可执行格式、架构等方面仍然需要一些兼容性,但你不必担心关于图书馆)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。