1

我们有一些专门为 Debian stable (x86) 开发的 C++ 应用程序。

目前,这些应用程序的开发也是使用 Debian stable (x86) 系统完成的,因此开发人员拥有与目标系统上相同的所有库版本。
有时,我还需要处理这些组件,它一直困扰着我,我被一个非常过时的 KDevelop 版本(4.0.1 与最新的 4.4.1)所困扰。我想使用更新的系统进行开发(如最新的 Ubuntu 或 Debian 测试),但如何创建适合目标系统的二进制文件?
有没有一些简单的方法可以告诉编译器/链接器使用仅在目标平台上可用的库版本?
我看了Emdebian和他们的交叉编译包,但我认为这对我不起作用。他们似乎只有针对 ARM 等其他架构的软件包。

4

3 回答 3

5

我建议使用 schroot。

$ sudo apt-get install schroot debootstrap

$ sudo debootstrap squeeze /opt/squeeze

然后在 /etc/schroot/schroot.conf 添加和条目如下:

[squeeze]
type=directory
description=Debian squeeze
directory=/opt/squeeze
users=myusername
root-users=myusername

之后,您就可以在 chroot 中安装软件包了:

$ schroot -c squeeze -u root
(squeeze)# aptitude

安装完所有需要的包后,就可以以普通用户身份进入chroot(只要你在schroot.conf文件中列出):

$ schroot -c squeeze

schroot 程序对于在旧桌面上运行较新的 X11 应用程序也很有用,您也只需要传递环境:

$ schroot -c squeeze -p
于 2013-01-03T15:33:30.580 回答
2

一个简单的解决方案是chroot在例如测试(或不稳定)Debian 发行版(或者甚至一些非 Debian 但 Debian“兼容”的东西,如 Mint 或 Ubuntu)下安装 stable -ed Debian 发行版。

您想使用debootstrap实用程序(安装 chrooted 发行版),并且需要绑定挂载伪文件系统,例如/proc//dev//sys/也许还有您的/home. 然后使用schroot进入您的稳定 Debian(并在其中编译)。

于 2013-01-03T08:44:02.323 回答
1

你可以:

  1. 在您的工作站上安装 Debian 测试
  2. 创建一个 chroot 监狱。
  3. 将 Debian stable 安装到 chroot 监狱
  4. 从监狱中编译您的项目。
于 2013-01-03T08:43:37.707 回答