我在 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/