我有一个正在使用 Ubuntu 11.10(Linux 版本 3.0.0-12-generic-pae 内核)开发的 C 程序。我需要在安装了 Debian 3.1(Linux 版本 2.4.24-om2)并使用 Intel(R) Pentium(R) 4 CPU 3.20GHz 处理器的集群中运行该程序。
问题是我无法在Debian集群中编译,因为它没有安装我的程序需要的GSL库,并且我不知道如何在没有root的情况下安装它(或使用它)特权。
如果我尝试运行在 Ubuntu 中编译的可执行文件(或者一个简单的 hello world 程序,对于这种情况),它不起作用,即使我使用所有 gcc 选项进行编译在集群上执行时会抛出异常:
gcc --save-temps -fverbose-asm hello_world.c -o hello_world
当我尝试执行在 Ubuntu 中编译的程序时,它会抛出:
floating point exception
更新:当我使用 -static 标志进行编译时,得到的错误是:
FATAL: kernel too old
Segmentation fault.
那么我可以做一些比重新实现我正在使用的 GSL 的所有功能更好的事情吗?
最佳答案
我不知道你面临的是什么不起作用,但我唯一能想到的不涉及交叉编译的是添加一个 -static
到您的 gcc
行。
关于c - 在另一个发行版中运行 C 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127589/