C++ 使用Code::Blocks、plink和makefiles进行远程编译时,无法访问环境变量
我试图在Windows7 Professional SP1下设置Code::Blocks,以便在linux服务器上使用PuTTY link->plink进行远程编译,但我对该主题不太熟悉。这是我使用的手册: 我将代码块配置如下: 设置->编译器和调试器->全局编译器设置->工具链执行: 程序文件->制作程序:plink.exe 项目->属性->项目设置: Makefile:Makefile\u名称 [选中]这是一个自定义生成文件 执行方向:Z:\Path\to\Samba\Share 项目的生成选项->调试->生成命令:C++ 使用Code::Blocks、plink和makefiles进行远程编译时,无法访问环境变量,c++,makefile,environment-variables,codeblocks,plink,C++,Makefile,Environment Variables,Codeblocks,Plink,我试图在Windows7 Professional SP1下设置Code::Blocks,以便在linux服务器上使用PuTTY link->plink进行远程编译,但我对该主题不太熟悉。这是我使用的手册: 我将代码块配置如下: 设置->编译器和调试器->全局编译器设置->工具链执行: 程序文件->制作程序:plink.exe 项目->属性->项目设置: Makefile:Makefile\u名称 [选中]这是一个自定义生成文件 执行方向:Z:\Path\to\Samba\Share 项目的生成
source ~/.login;/path/to/my/application/my_application;$<
构建项目/目标:
$make-X-sshuser@linux_server-pw my_great_password make-f$makefile-C/path/to/my/makefile
编译单个文件:
$make-X-sshuser@linux_server-pw my_great_password make-f$makefile-C/path/to/my/makefile$file
清洁项目/目标:
$make-X-sshuser@linux_server-pw my_great_password make-f$makefile clean-C/path/to/my/makefile
询问是否需要重建:
$make-X-sshuser@linux_server-pw my_great_password make-q-f$makefile-C/path/to/my/makefile
静默构建:
$make-X-sshuser@linux_server-pw my_great_password make-s-f$makefile-C/path/to/my/makefile
顺便问一下,我是调用linux服务器上的编译器/链接器,还是Code::Blocks本身编译并链接linux服务器上的源代码?原谅我的无知
我现在面临的问题是,我无法访问makefile中的环境变量:
包括$MY_ENV_VAR/path/to/other/makefile
我收到的错误让我假设,我的_ENV_VAR仍然为空:
/path/to/other/makefile:没有这样的文件或目录
我检查了Code::Blocks是否尝试解析windows计算机的环境变量,但事实并非如此
其他信息:
代码::块版本:
版本:10.05,内部版本:2010年5月27日19:10:05-wx2.8.10 Windows,unicode-32位
Linux服务器:
Linux Linux_服务器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上有类似的问题:
据我所知,当你通过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
通过这种方式,a可以远程编译我的软件。为了启动应用程序,我添加了一个构建后步骤:
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外壳。所以我用$