0

我正在尝试在 Windows 7 Professional SP1 下设置 Code::Blocks 以在 linux 服务器上进行远程编译(使用 PuTTY 链接-> plink),但我对该主题不太熟悉。这是我使用的手册:

http://wiki.codeblocks.org/index.php?title=Using_Xming_for_remote_compilation

我配置代码块如下:


设置->编译器和调试器->全局编译器设置->工具链可执行文件:

程序文件->制作程序:plink.exe


项目->属性->项目设置:

生成文件:makefile_name

[检查] 这是一个自定义的 makefile

执行方向:Z:\Path\to\Samba\Share


项目的构建选项->调试->“制作”命令:

构建项目/目标:

$make -X -ssh user@linux_server -pw my_great_password make -f $makefile -C /path/to/my/makefile

编译单个文件:

$make -X -ssh user@linux_server -pw my_great_password make -f $makefile -C /path/to/my/makefile $file

清洁项目/目标:

$make -X -ssh user@linux_server -pw my_great_password make -f $makefile clean -C /path/to/my/makefile

询问是否需要重建:

$make -X -ssh user@linux_server -pw my_great_password make -q -f $makefile -C /path/to/my/makefile

静音构建:

$make -X -ssh user@linux_server -pw my_great_password make -s -f $makefile -C /path/to/my/makefile

顺便说一句,我是在 linux 服务器上调用编译器/链接器,还是 Code::Blocks 本身在 linux 服务器上编译和链接源代码?原谅我的无知。


我现在面临的问题是我无法访问makefile中的环境变量:

include $(MY_ENV_VAR)/path/to/another/makefile

我收到的错误让我假设,它MY_ENV_VAR仍然是空的:

/path/to/another/makefile: No such file or directory

我检查了 Code::Blocks 是否尝试解析我的 Windows 计算机的环境变量,但事实并非如此。


附加信息:

代码::块版本:

Version: 10.05, Build: May 27 2010, 19:10:05 - wx2.8.10 (Windows, unicode) - 32 bit

Linux服务器:

Linux linux_server 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 2010 x86_64 x86_64 x86_64 GNU/Linux

如果需要,我可以提供更多信息。我也欢迎其他建议,以在 Windows 上实现在 linux 机器上的远程编译。或者是另一个IDE更适合做远程编译?

感谢阅读/帮助。


编辑:

我发现有人对 NetBeans IDE 有类似的问题:

http://forums.netbeans.org/topic37974.html

4

1 回答 1

0

根据this stackoverflow postthis fixunix post我可以弄清楚,当您通过putty连接时,plink不会执行启动脚本。所以我意识到 Code::Blocks 在我尝试远程编译时遇到的困难是无辜的。

就我而言,我必须显式获取登录脚本~/.login才能访问我的环境变量。例如,对于 make 命令,这意味着:

$make -X -ssh user@linux_server -pw my_great_password "source ~/.login;make -f $makefile" -C /path/to/my/makefile

这样就可以远程编译我的软件。为了启动应用程序,我添加了一个构建后步骤:

cmd /c "C:\Program^ Files\PuTTY\putty.exe -load my_session -pw my_great_password"

在密码中,我不得不转义一个 & 字符:(^&顺便说一下,使用私钥而不是硬编码密码的原因有很多)。这会加载一个存储的 PuTTY 会话,该会话具有以下远程命令:

source ~/.login;/path/to/my/application/my_application;$<

我正在使用 C shell。因此,我曾经$<等待用户输入(回车键)。现在我可以通过点击构建按钮来编译和运行我的应用程序。希望这有助于其他人配置 Code::Blocks 以进行远程编译。如果您遇到更多问题或想提供更多信息/建议,请发表评论。

于 2012-05-25T08:56:16.690 回答