我有一个年长的(~1999 年)不幸的商业图形程序,它在 gcc 最高 3.4.6 (CentOS 4.8) 的系统上运行得很好。然而,在我尝试过的所有基于 gcc 4.* 的发行版中,程序都会因“分段错误”而失败(我尝试了不同版本的 CenOS、Sebian 和 SUSE)。
该软件有较新的版本(我们甚至有许可证),具有大量新选项,因此对于日常工作来说,我们可以得到很好的服务。然而,旧版本有一个很好的选项,可以将图形导出为 x 图形,而新版本仅基于 PpenGL。即使 x-graphic 很难看(对不起这个形容词),如果您通过 DSL 线路工作,速度也会快得多。
安装过程中唯一缺少的库是:libXp.so.6、libXmu.so.6 和 mesa3。我使用标准存储库安装它们没有任何问题。
我尝试过strace
这个错误,但在加载所有必需的库后,程序只是停止而没有给我太多信息:
open("/lib/libuuid.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\17\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=15200, ...}) = 0
mmap2(NULL, 17828, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xfffffffff7464000
mmap2(0xf7468000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3) = 0xfffffffff7468000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7463000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xfffffffff7462000
set_thread_area(0xff8de9b4) = 0
mprotect(0xf746c000, 4096, PROT_READ) = 0
mprotect(0x439000, 8192, PROT_READ) = 0
mprotect(0xf74dc000, 4096, PROT_READ) = 0
mprotect(0xf763f000, 1032192, PROT_READ|PROT_WRITE) = 0
mprotect(0xf763f000, 1032192, PROT_READ|PROT_EXEC) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Segmentation fault
有人知道如何让这个程序在较新的发行版上运行吗?
ps 我没有它的来源。建议使用来源,卢克!!对我不起作用。
pss 对于好奇的人 - 该软件称为 gaussview v2