从Visual C ++移植到Linux

时间:2014-10-23 17:09:46

标签: c++ linux visual-studio

我对此有点新意,如果这没有意义/这是一个愚蠢的问题,请道歉!!

无论如何,我正在创建一个必须使用OpenCV以及UDP套接字的项目。我目前正在Visual Studio(2013)中编写C ++部分,因此该项目是visual C ++。该计划最终将项目从PC转移到运行Linux发行版的嵌入式计算机上。

我想知道以后是否会出现任何专业问题,如果我在Visual Studio上开发整个C ++代码然后尝试移植到linux环境会让我头疼?

此外,如果是这种情况,是否可以通过更改IDE或其他方式来避免这些未来的问题?

4 个答案:

答案 0 :(得分:1)

如果您使用MFC作为GUI,您可以告诉有朝一日将代码移植到Linux的任何可能性。

如果您仅将visual studio用作IDE并使用便携式第三方库(Qt,boost ...),您应该能够顺利移植代码。

实现这一目标的一个好方法:

  • 以小写字母显示所有文件名
  • 避免使用任何win32 API(更喜欢升级库)
  • 如上所述,不要在文件路径中使用\,/几乎总是适用于所有平台
  • 编写一些Cmake脚本来生成vcproj和sln文件
  • ......它并非详尽无遗......

如果这适用于PC,那么您可以使用Cmake生成Linux Makefile,它有望在Linux下编译和运行。

理想情况下,要运行大量单元测试,因为移植可能会引入多个小错误,而您很难找到它们。

答案 1 :(得分:0)

您可以使用多平台编译器,如MINGW(http://www.mingw.org/),最终使用Codeblocks(http://www.codeblocks.org/)或Netbeans来防止兼容性问题。编写的代码应该高度兼容。但是使用Visual-C ++编译器,在Linux上编译程序可能会更复杂,因为这个编译器只在Windows上运行。

答案 2 :(得分:0)

我最近将一个Visual C ++项目移动到一个Linux发行版,没有出现重大问题。最大的问题是我必须将所有\更改为/。如果您有疑问,可以随时使用多平台编译器。

答案 3 :(得分:0)

可以在Windows上使用Visual Studio编译也可以在Linux上编译的项目。我有两个这样的项目。可以在https://svn.sullivanandkey.com/SnKOpen/cpp/now/trunk/https://svn.sullivanandkey.com/SnKOpen/cpp/yekneb/trunk/找到它们。

这些项目都不使用GUI,但是如果您使用跨平台GUI库(如wxWidgets,FLTK或Qt),则可以使用GUI。

我的YekNeb项目在以下操作系统上编译:FreeBSD,GNU / Linux,Microsoft Windows,Solaris和ReactOS。

关键是将自己限制在您希望定位的所有平台上可用的API。如果您使用任何第三方库(如OpenCV),请确保在您希望使用的每个平台上都支持它们。

有时您需要使用行为不同的代码,具体取决于给定平台上是否有给定功能。我建议不要使用我在上面提到的两个项目中使用的技术来做到这一点。我将很快转换到CMake并使用CMake:How To Write Platform Checks中的配置功能。<​​/ p>

我希望这会有所帮助。