6

我正在考虑从 Windows 环境切换到 Linux 进行 C++ 开发。这是一个坏主意吗?我的工作场所为我们的项目使用 Windows 和 Visual Studio(一些 C# 和 java,但现在我只使用 C++ 进行开发)。如果他们决定让我参与 C# 项目,开发是否仍然可行(单声道?)?这种转型有哪些困难?

我在他们的项目上工作会有问题吗?反之亦然?我在某处读到预编译的标头等(我们确实使用它们)和编码(制表符/空格,行尾等)会有问题。

如果进行此切换不是太难,我该如何开始?IDE?vim+制作?

谢谢。

顺便说一句,我们主要制作 Windows 软件..


编辑:谢谢大家,我想这是有道理的..

4

9 回答 9

26

这是个坏主意。我至少可以看到两个原因:

  • 在您为其编写软件的同一操作系统上进行开发
  • Visual Studio 摇滚
于 2009-02-27T14:15:35.137 回答
8

如果您正在为 C++ 和 C# 进行开发,请坚持使用 Windows。Visual Studio 调试器绝对出色,而且似乎大多数 Linux IDE 都没有可比性(Java 的 Eclipse 除外)。此外,如果您在 Linux 上,您可能会使用不同的编译器,这可能会导致非常奇怪的错误。

于 2009-02-27T14:17:27.630 回答
4

我是 Mac 用户(前 FreeBSD 人),所以我理解你的直觉。简而言之:您将要使用 Visual Studio。它是您的 C# 项目的最佳工具。它也是您以 Windows 为中心的 C++ 编程的最佳工具。即使不是,如果您不运行要运行的操作系统,您的测试也会受到影响。

从好的方面来说,始终在虚拟机中进行开发。尤其是在 Windows 上。使用源代码控制并经常为您的虚拟机拍摄快照。执行此操作时,无论您在主机上运行 Linux 还是 OS X 都没有关系。

干杯

尼克

于 2009-02-27T14:28:34.390 回答
2

这不是一个好主意,因为对单声道 Windows 窗体的支持尚未完成。Linux c# 开发人员通常将 GtkSharp 用于 GUI,这将为您的应用程序添加另一个依赖项,并且与 Windows 窗体有很大不同。但 GtkSharp 也不错。我特别喜欢 GTK 的包装盒功能,因为它使我的控件(错误、小部件)更容易正确调整大小并自动消除所有屏幕 DPI 问题。

但也有可能您的现有代码可能具有其他 Linux 上不存在的依赖项,尤其是使用 P/Invoke 调用的非托管代码。如果是这样的话,在 Linux 上进行开发可能是不可能的。

于 2009-02-27T14:19:28.780 回答
2

我目前在 windows 和 linux 上开发。我发现在这两个(或更多)平台下编译相同的代码非常有用,因为由于 vc++ 和 gcc,您可以发现一些编码错误。当然,最重要的平台是您正在开发的平台。如果您的应用程序将在 Windows 上运行,请在同一平台上开发它,并且只有在您可以分配更多资源的情况下,尝试将其移植到 linux 或其他平台上。无论如何,在开发过程中考虑可移植性是一个好习惯,这意味着尽可能使用标准解决方案

于 2009-02-27T14:43:18.957 回答
1

我已经转向在 linux 上进行 Web 开发,这是我个人发现的

为了做正确的事情最终不会导致问题(使用特定的软件),我必须有一个虚拟机。对于我需要的软件来说,Wine 还不够稳定

同样出于我的特殊需要,只是整个“系统字体”不同导致了许多脚本问题 b/w windows 和 unix/linux

我要换回胜利。我喜欢 LINUX,但在我的大多数客户使用 Windows 和 IE 的专业领域......我需要用他们所拥有的东西来运行......我认为这是最聪明的生产力

(个人意见,非天意)

蒂姆

于 2009-02-27T14:21:41.567 回答
1

我建议坚持windows。Windows 非常适合 Windows 开发。Linux 是您可以编写跨平台内容/Linux 特定内容的地方(如果您愿意)。我尝试使用 Mono 来学习 C#,它适用于玩具示例,但不适用于 .NET 的某些部分。我切换回窗户。我无法想象切换到 Linux 是个好主意。我无意冒犯,这只是我的看法。

于 2009-02-27T14:23:13.980 回答
1

如果你缺少很多 Linux ——并且你需要留在一个 Windows 机器上与你的团队和你的工作应用程序交互——安装CygwinGNU Win32 工具

于 2009-02-27T14:46:18.120 回答
0

如果你绝对在 Linux 上销售,VMWare 非常适合运行虚拟机,如果你使用 mingw 工具链编译你的 Linux/跨平台程序,添加单个依赖项,可以是静态的,你不应该得到任何窗口错误。

于 2011-03-23T23:03:27.530 回答