【问题标题】:Tools for Unix <-> Windows C++ developmentUnix <-> Windows C++ 开发工具
【发布时间】:2009-12-12 13:35:12
【问题描述】:

我正在做一些 C++ 交叉开发——在 Windows 上做了一段时间,最近开始在 Unix 上做。

我想我所追求的是简化 Unix 开发体验 - 我有一个本地 windows 机器进行开发,还有一个远程 Solaris 机器用于在 unix 环境中编译和测试代码。

我现在做什么 - 我在 Windows (VC++) 上开发、编译和测试代码,一旦完成,我使用 Filezilla over SSH 将代码移动到 Solaris 盒子。我还使用 Putty 连接到 Solaris 盒子并执行 shell 命令。

由于我对 unix 开发还很陌生 - 我想我所做的还不是最佳的,而且我使用的工具/技术也不是最佳的。

您能否推荐我一个更好的工具 - 如何更轻松地移动代码,并且可以替代 Putty(无论如何看起来已经过时了)。

谢谢。

【问题讨论】:

  • 是什么让你觉得腻子看起来过时了?
  • 你的构建系统是什么样的?
  • 构建系统只是一个make实用程序和一个makefile

标签: c++ windows unix cross-platform solaris


【解决方案1】:

如果您想在 Windows 和 Solaris 上运行相同的 C++ IDE,我建议您查看Code::Blocks。此外,正如我向 Charles 建议的那样,在 Windows 机器上运行 X 服务器比运行 Putty 或类似软件提供了更多的灵活性。

【讨论】:

  • +1 用于建议 X。您最终需要访问 gdb 进行调试和 vi 进行编辑,并且 X 没有 telnet 所具有的控制台故障。
  • 所以你是说 - 我可以在我的 windows 机器上运行 X 服务器,当我可以使用它以某种方式连接到我的远程 solaris 盒子时,我的 UI 体验比那个该死的 telnet 更丰富?你能告诉我如何在寡妇上安装 X 服务器以及如何将它与远程 unix 机器结合起来。谢谢。
  • 如果您在 Windows 机器上运行 X 服务器,您在 Solaris 机器上运行的程序(X 客户端)可以使用 Windows 显示器。这意味着您可以在 Solaris 上运行 xterm(例如),并让它使用 Windows 键盘和显示器。要获得 Windows X Server,请在 Google 上搜索“免费的 Windows X Server”。
  • 有一个名为 VNC 的远程 windows 协议可能会更好。 Windows 上有更多的免费客户端。
【解决方案2】:

您不能使用虚拟机在 Solaris 上测试软件有什么原因吗?他们可以共享文件夹,因此无需将代码上传到远程机器。

第二:使用 svn 或 git 或 mercurial。在一台机器上您签入您的代码,在另一台机器上您签出以及您有更改历史记录。无需通过 SSH 使用 Filezilla。

编辑: 另外,我认为使用 cmake(或 scons - 但我不使用它)来生成构建文件会很好。例如 - cmake 为您的 IDE 生成 Makefile 或项目文件,因此您无需维护在不同平台上构建代码的几个不同文件。

【讨论】:

  • 不幸的是,我无法在虚拟机上复制 Solaris 环境,因为它运行一些我既无法获取也无法自行配置的复杂软件。 Makefiles 不是什么大问题 - 我有一个充满了很多 IF THEN ENDIF - 不完美但对我有用,问题是 - 我正在使用的工具 - 我虽然应该有更好的工具。
【解决方案3】:

您可能想查看Samba,因此您可以直接使用 Windows 文件资源管理器将文件移入和移出 Windows/Unix 环境,而不是使用 FTP。

但是对于通过 Windows 访问 UNIX shell,你真的无法击败 Putty。

【讨论】:

  • 你当然可以打败它——在 Windows 机器上运行 X 服务器要好得多。
  • 好点。如果您只对 shell 访问感兴趣,Putty 很好,但 X-server 更好,因为它也为您提供桌面访问。
【解决方案4】:

我推荐mercurial。

【讨论】:

    【解决方案5】:

    只需使用版本控制系统,例如 Subversion 或 Mercurial。我强烈推荐后者,因为它是分布式的,所以你不需要每个人都有服务器,你可以离线工作。每次你想把你的 Windows 代码推到 unix 机器上,你只需要执行“hg push”就可以了。要整理构建,您可以使用旧的 Make 或仅使用 SCons(我更喜欢后者,因为它具有 Python 的强大功能)。

    实际上,我最近使用 wxWidgets 和 GraphicsMagick 用 C++ 开发了一个跨平台项目。我是在 Mac OS X 中编写的,然后在 Windows 和 Linux 中编译。我想指出的一件事是,GCC 似乎比 Microsoft 的编译器在编译警告和错误方面更迂腐,所以如果你喜欢 Unix 环境,我建议在那里开发,然后在 Windows 中编译(甚至可能使用VMWare 映像)。

    【讨论】:

      【解决方案6】:

      与其手动移动源代码,不如考虑使用版本控制系统。不一定是分布式 VCS,例如 git 或 mercurial,但您仍然应该使用版本控制。

      迟早,您需要在 Unix 机器上使用调试器,如果您更喜欢使用图形调试器,您应该在 Windows 机器上安装本地 X 服务器。

      【讨论】:

        【解决方案7】:
        • 恕我直言 vim 是相当不错的编辑器 ;)
        • gcc、nm、ld 用于编译/构建/诊断
        • 构建文件
        • gdb 作为调试器,如果你喜欢 GUI 检查 ddd(如果你想坚持 使用 Visual Studio 进行调试 检查www.vsbridge.com 或 www.wingdb.com - 他们俩 依赖 gdb 作为后端)
        • 其他 Unix 商业调试器 是总视图 (http://www.roguewave.com/products/totalview.aspx价格是 高,虽然他们有自己的 引擎而不是 gdb)
        • CVS、SVN 作为源代码控制

        如果你想在 VisualStudio 中编辑文件,你可以使用例如Samba 作为“透明文件系统”;)

        顺便说一句,VirtualBox 可能会很有帮助(我非常频繁地将 (Open)Solaris 或 Linux 作为 VBox 机器进行调试)。

        ps 您可能感兴趣的另一个环境是 Magic C++ www.magicunix.com/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-02-14
          • 1970-01-01
          • 2010-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多