帮助编译(需要旧库)

帮助编译(需要旧库)

我需要运行一个科学软件,但它需要较旧的库,我不想破坏我当前的系统。我考虑在虚拟机中使用旧的 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++...

如果我要这么做,我会按照以下步骤进行:

  1. 作为一个在 Ubuntu 软件包档案中搜索揭示,没有 Ubuntu 版本具有 wxWindows 2.4.2;衣冠楚楚有 2.4.4,哈代轻快的有 2.4.5。这可能是兼容版本(补丁级别编号不会更改 API),但只有尝试才能知道……它们应该也有正确的 g++(因为它用于编译 Ubuntu 包)。

  2. 安装去增强程序,并使用它在目录中安装旧版 Ubuntu 的副本foo

    sudo deboostrap jaunty foo/

  3. 下载源代码并将其放在以下目录中foo/

  4. 使用chroot进入旧环境并编译:

    $ sudo -s
    # chroot foo/
    (foo)# cd /source/directory; make
    

请注意,在 chroot 中,您只能访问以下文件foo/- 这已成为新的根目录(只需退出 shell 即可恢复正常)。

您还可以使用虚拟机代替 chroot 环境(替换步骤 2.、4.);恕我直言,chroot 允许更无缝的使用,尽管设置起来可能有点棘手。

相关内容