linux直接运行unix程序,Linux程序在Ubuntu机器上运行但在Unix webserver...
我已经下载了命令行程序“Whitaker’s Words”,该程序可用于Linux以及Windows等.有一个名为words的主程序.我尝试在命令行上的Ubuntu(11.10)机器上执行它,它工作正常:./words当我在我的Linux网络服务器(Linux 2.6.37-he-xeon-64gb 1 i686)上测试它时,它也能正常工作.然后我决定对源代码应用一些更改并重新编译它.为此,我使用
我已经下载了命令行程序“Whitaker’s Words”,该程序可用于Linux以及Windows等.
有一个名为words的主程序.我尝试在命令行上的Ubuntu(11.10)机器上执行它,它工作正常:
./words
当我在我的Linux网络服务器(Linux 2.6.37-he-xeon-64gb 1 i686)上测试它时,它也能正常工作.
然后我决定对源代码应用一些更改并重新编译它.为此,我使用了以下命令(后四个是支持程序):
gnatmake -O3 words -bargs -static
gnatmake makedict -bargs -static
gnatmake makestem -bargs -static
gnatmake makeefil -bargs -static
gnatmake makeinfl -bargs -static
由此产生的程序再次在我的Ubuntu机器上正常工作,因为我可以在终端中看到正确的输出.
但是当我尝试使用PHP的shell_exec()或passthru()在我的网络服务器上执行它时,根本没有输出!根据ldd,该程序是静态链接所以它应该真的有用,不应该吗?
我已经进行了几周的测试和调试,我找不到任何理由这样做.你能帮助我吗?
(我想这不是编程问题,因为我的问题只是:如何在我的网络服务器上运行该程序?)
系统我想编译程序:
Linux ubuntu 3.0.0-12-generic#20-Ubuntu x86 GNU / Linux
这是Ubuntu最新的Wubi(32位)版本.
ldd –version输出ldd(Ubuntu EGLIBC 2.13-20ubuntu5)2.13
系统我想在(webserver)上运行已编译的程序:
Linux 2.6.37-he-xeon-64gb 1 i686 GNU / Linux
ldd –version输出ldd(GNU libc)2.7
注意:
服务器端的错误可以被排除,因为如果我只用预编译的程序替换我自己的Linux程序,一切正常.
更新#1:
我已经尝试在Ubuntu 5.10下的VirtualBox中运行程序(在Ubuntu 11.10下运行正常) – 它也没有用.好消息,所以这绝对不是服务器的错. Ubuntu 5.10刚才说:浮点异常.这有帮助吗?为什么有一个例外而不是Ubuntu 11.10?
更新#2:
现在用Ubuntu 5.1使用GNAT 3.4编译.但是所有的希望都没有 – 仍然没有输出,ldd说静态链接(因为我已经这样编译)和strace给出相同的错误信息.这是什么意思?有没有文件丢失?这是它无法正常工作的原因吗?
execve("./words", ["./words"], [/* 15 vars */]) = 0
brk(0) = 0x811e000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76f8000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76f7000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb76f7680, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)