我有一个 chroot 环境,其中包含使用 make 构建复杂 C++ 项目所需的一切(它适用于特定的 Linux 发行版)。
我想在这个项目中使用 Eclipse CDT(在 chroot 环境之外),但是让 Eclipse 在构建时进入 chroot 环境并在那里构建。
是否可以?
我有一个 chroot 环境,其中包含使用 make 构建复杂 C++ 项目所需的一切(它适用于特定的 Linux 发行版)。
我想在这个项目中使用 Eclipse CDT(在 chroot 环境之外),但是让 Eclipse 在构建时进入 chroot 环境并在那里构建。
是否可以?
是的,这是可能的。只需在 C/C++ 构建下的构建器设置选项卡中选择“外部构建器”。我选择了一个执行以下命令的脚本:
sudo chroot $HOME/mychroot/ bash -c 'cd /myproject-location/; make clean; make'
为了避免密码检查,我在 /etc/sudoers 文件中添加了以下行:
%sudo ALL= NOPASSWD: /usr/sbin/chroot
为了避免错误的构建失败/语法错误报告,您必须将 chroot 环境中的包含文件添加到 eclipse cdt 项目中。
稍微优雅一点的方法是制作一个脚本 compile.sh
#!/bin/bash
sudo chroot $HOME/mychroot bash -c 'cd /workspace/'$1'/; make '$2
并在 Eclipse 中将其写给您的外部构建器
/pathto/compile.sh ${ProjName}
这使得部分构建成为可能,因为构建目标被传递到 chroot。