apache - 在 Unix 网络服务器上运行的 Ubuntu 编译程序

标签 apache gcc ubuntu glibc ada

我在 Ubuntu 上使用 GNAT 编译了一个 Ada 程序。

之后,我尝试使用该程序进行几次测试,它运行正常。

但是当我将它上传到我的 Apache (UNIX) 网络服务器并尝试运行该程序时,没有输出。为什么会这样?

会不会是在 Ubuntu 上编译的程序不能在 UNIX 服务器上运行?

(对不起这个愚蠢的问题!)

我用于编译的系统的 Linux 版本 (uname -a):

Linux ubuntu 3.0.0-12-generic #20-Ubuntu x86-64 GNU/Linux

我以后要运行程序的Linux版本(uname -a):
Linux 2.6.37-he-xeon-64gb+1 i686 GNU/Linux

为了在 Ubuntu 机器上编译,我使用:
gnatmake -O3 myprogram -bargs -static

最佳答案

当您构建 GNAT 程序 ( gnatmake my_program ) 时,默认情况下它链接到动态库 ( libgnat.so , libgnarl.so )。这些库是 GNAT 系统的一部分,不太可能在您的 Web 服务器上可用。

如果你说 ldd my_program它将向您显示使用的共享库。

您可以通过说强制构建使用静态 GNAT 库

gnatmake my_program -bargs -static

(-bargs -static 必须出现在像 -O2 这样的常规标志之后)。

编辑:more info on -bargs and friends .

关于apache - 在 Unix 网络服务器上运行的 Ubuntu 编译程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9759395/

相关文章:

php - 使用 ini_set ("memory_limit", "-1")并且仍然内存不足

c - 如何使用给定的汇编代码查找 C 代码中变量之间的间隙值?

c++ - undefined reference 错误的含义

linux - 使用 sed 或 awk 等脚本清理 Linux 中的文件

bash - 更改目录 ubuntu 服务器脚本

apache - WebSVN 抛出 XML 错误 : no element found (3) after upgrading to SVN 1. 8.8

php - UTF-8贯穿始终

linux - 这个 shell 脚本语法有什么问题?

c - 未初始化的变量放入程序存储区。 AVR编程

Python 和 MySQL 神秘的内存泄漏