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