我需要运行一个科学软件,但它需要较旧的库,我不想破坏我当前的系统。我考虑在虚拟机中使用旧的 Ubuntu 版本。但我需要哪个?
该软件可获取这里
自述文件写道:
Makefile 假定您使用的是 wxWindows 2.4.2,并且它安装在 /usr(/usr/lib/、/usr/include/wx 等...)中。但是,它也可能安装在 /usr/local 中;在这种情况下,请适当修改 Makefile 的第 18 行。
此外,wxWindows 2.4.2 与 GTK 的最新版本存在冲突,因此您可以使用最新版本的 wxWindows (2.6.0)。但是,这也需要更改 Makefile,即第 16-18 行。此外,这个新版本的 wxWindows 将库分为不同的部分:基础、核心和 gl。您需要链接到所有这些库。
如果你给我发电子邮件[电子邮件保护],我可以给你发一个定制为2.6的Makefile。
更新:我的代码无法在 2.6 上运行。2.4.2 无法在较新版本的 g++ 上编译。所以,这个问题我还没来得及解决。抱歉。您唯一的希望是使用较旧的 g++。
答案1
我认为您发布的说明的真正问题是它们要求使用旧版本g++
:安装不同的库版本相对简单,而安装和运行不同的编译器却不是一件容易的事。此外,说明没有告诉您应该使用哪个版本的 g++...
如果我要这么做,我会按照以下步骤进行:
作为一个在 Ubuntu 软件包档案中搜索揭示,没有 Ubuntu 版本具有 wxWindows 2.4.2;衣冠楚楚有 2.4.4,哈代和轻快的有 2.4.5。这可能是兼容版本(补丁级别编号不会更改 API),但只有尝试才能知道……它们应该也有正确的 g++(因为它用于编译 Ubuntu 包)。
安装这去增强程序,并使用它在目录中安装旧版 Ubuntu 的副本
foo
:sudo deboostrap jaunty foo/
下载源代码并将其放在以下目录中
foo/
使用chroot进入旧环境并编译:
$ sudo -s # chroot foo/ (foo)# cd /source/directory; make
请注意,在 chroot 中,您只能访问以下文件foo/
- 这已成为新的根目录(只需退出 shell 即可恢复正常)。
您还可以使用虚拟机代替 chroot 环境(替换步骤 2.、4.);恕我直言,chroot 允许更无缝的使用,尽管设置起来可能有点棘手。