c - 在另一个发行版中运行 C 可执行文件

标签 c linux gcc cross-platform gsl

我有一个正在使用 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/

相关文章:

gcc - ARM 汇编器的奇怪 GCC 行为。 AND SEQ 指令

我可以将 char* 数组而不是几个参数传递给函数吗?

c - *nix : "echo ' start working' >/etc/. 示例”: how is this implemented?

c++ - 如何在 ROS 中查找计算机的当前日期?

c++ - 如果我在使用 PTHREAD_PROCESS_SHARED 时不调用 pthread_mutex_destroy 会发生什么

performance - 如何建议gcc编译器更可能的分支

c - 为什么我总是覆盖链接列表中指向的内容?

c - 以太网头的长度一定是 14 吗?

linux - 如何在 Linux 上的 Bash 中检查系统日志?

c++ - 为什么自建的 g++ 编译器无法编译我的代码