2009-10-23 115 views
0

我必须编写一个C/C++应用程序。我在我的机器上安装了windows和linux(ubuntu 9.04),并且可以在它们两者中编程(通过gcc/code blocks/vim等)。问题是可执行文件将在Unix(而不是Linux)机器上运行(将在大约20天内访问它)。远程编程和调试

我的团队负责人不希望所有的代码都在linux下编程 - unix。所以,其中的一些必须在Windows中开发(然后很多祈祷会随之发生,以免发生任何不好的事情)。

我想出的最好的东西就是在服务器上远程编程,从windows和linux,所以每个程序员(只有我在接下来的2周)是有点高兴。 在Windows中,我认为我坚持腻子,但有没有在Linux上的其他选择,而不是ssh-vim? 。

我看了这个Remote debugging with Eclipse CDT,但它没有带来太多的亮点。至少没有多少希望。

还有一个问题。我不认为C/C++是一种便携式语言。至少对于真正的节目。当然,它编译,但许多问题出现,即使在boost/stl。我没有仔细查看代码,但仍然,我是多么的错误?

任何提示将不胜感激。 在此先感谢。

+0

在* nix中编程/开发是什么意思?你真的在谈论你的开发环境和工具吗?或者你在谈论编译环境,二进制目标? – 2009-10-23 03:19:48

+0

二元目标。我想知道如何在那里从我的本地机器编译一个好的环境 – Tom 2009-10-23 04:07:27

回答

1

你可以ssh w/xming作为远程机器上的gui ide /编辑器。

如果所有的代码都是一个远程机器并在那里编译,那么您不必担心开发人员尝试使用相同的资源吗?如果您使用xming,机器/网络也可能无法处理多个ssh连接?

+0

是的,网络是一个问题。不幸的是,我不知道,直到我测试它。 – Tom 2009-10-23 04:08:23

1

如果您可以说服您的系统管理员安装这些库(不需要X服务器),那么您可以使用SSH进行X转发,这将允许您远程执行X应用程序并让它们出现在本地服务器上。如果你在本地使用Linux,你可能已经在运行X了,如果你使用的是Windows,你可以使用Xming服务器(通过一些配置让它接受远程连接)。对于调试,如果您需要单独的shell,只需设置另一个SSH实例并从另一个进程执行调试即可。

至于可移植性,这取决于你正在尝试做什么。如果你只想要一个简单的基于控制台的应用程序,你不应该遇到任何主要的可移植性问题。如果您使用更复杂的代码,可移植性主要取决于两件事情。首先是库的选择 - 当然,你可以在Wine上运行为Linux上的Win32编写的应用程序,或者实际上用Winelib编译它们,但这不是一个愉快的体验。如果您选择像Qt或gtkmm这样更便携的产品,您将会有更轻松的时间。同样,对于文件系统代码 - 使用像Boost.Filesystem这样的库会使事情变得简单得多。第二件事对可移植性产生很大影响的是,请遵循文档。很难强调这一点 - 很多你错误地做的事情会在不同的平台上产生不同的结果,特别是当你使用不做检查的库时(注意:我强烈建议你根据调试标准库检查代码)。我曾花了近一段时间来追踪一个由于某人没有阅读文档并传递一个无效参数而引发的可移植性错误。

1

如果您想使用远程桌面设备,请尝试VNC www.realvnc。com 或万一它只是一个远程登录蜂鸟,EXceed可以帮助

1

不知道这是否会有所帮助,但请看一看sshfs。我自己并没有必要使用它,但我已经阅读过其他人使用它来通过ssh访问远程文件和目录,并在本地处理这些文件。我推测你可以通过sshfs访问远程主目录,然后使用本地工具来处理源文件。我非常希望知道这是否可行,所以如果你给它一个镜头,请回复。

+0

我目前使用sshfs远程工作,但以vim作为ide。我会深入研究一下。谢谢 – Tom 2009-10-23 17:19:33

0

我使用No Machine NX,它为您提供了远程机器的整个桌面。它也有一个Windows客户端。我星期五从家里远程工作,所以我现在正在使用它。您必须将其安装在远程计算机上,然后在Windows或Linux计算机上安装客户端。