将Visual Studio C ++移植到Linux

时间:2010-07-21 09:57:55

标签: c++ windows linux visual-studio-2010

我们有一个不太复杂但(即很多文件)的Visual Studio C ++ Win32控制台在VS2010中用C ++ 0x标准编写。 它不使用任何非标准代码或任何东西(希望!)。

我现在想把它移植到Linux上。 哪种方式最快的方法呢? autoconf的? 老式的make文件? 任何其他解决方案?

5 个答案:

答案 0 :(得分:7)

我会使用常规make,但尽可能使用默认规则保持简单。随着时间的推移添加依赖项。

编辑:在临时步骤中,使用mingw构建它,以便在新构建机制中有可用的构建之前,可以避免整个API移植问题。

如果您的控制台应用程序调用win32 API函数,那么您可以选择修改使用它的所有源代码还是编写实现这些函数的模块。

在此类型的先前移植工作中,我尝试了两种方式,后者更容易。我最后只写了大约18到20个垫片函数。

这足够成功,我最终编写了一个操作系统抽象层,在许多项目中使用,只需让我在Windows native,cygwin,Linux,VxWorks等上编译,只需对一个或两个文件进行微小的更改。

(ps对基于C ++的操作系统抽象层的开源版本感兴趣吗?如果有足够的兴趣,我正在考虑向全世界发布它的无阻碍版本。它在BOOST太重的情况下非常有用 - 即嵌入式项目。)

答案 1 :(得分:3)

很可能你不需要autoconf(我建议你不要碰它,unless you love pain),因为你不是想要移植到十几种Unix风格。

  1. 手动滚动Makefile。如果你有一组共享规则并且只有指定源文件和编译选项的最小Makefile,那应该不会太困难。
  2. 将GCC 4.5用作it supports more C++0x features

答案 2 :(得分:2)

您可以从Visual Studio导出make文件。

更新:实际上你已经不能了,除非你有VC6躺在

答案 3 :(得分:1)

远离AUTO *并进行配置。这些都是可怕的恕我直言。

如果你能以某种方式获得VS 8或9 vcproj / sln,你可以使用this。我没有用它,所以我不能给出任何建议。

如果您需要手动转换,我建议使用像CMake这样的东西,因为即使对于大型项目来说,它也很容易准备得足够快。

如果项目布局简单,你可以成功使用Qt 4的qmake:

qmake -project

它将输出一个qmake .pro文件,该文件可以在许多平台上转换为makefile(使用qmake)。这应该没问题,但并不完美。或者,您可以安装VS的Qt插件,并让它从现有的VS项目生成专业文件。它会使你的构建系统依赖于Qt4的qmake,这可能不是你想要的。

当然还有像cmake这样的其他东西,但它们都需要人工干预。

答案 4 :(得分:1)

最快的方法吗?

g++ *.cpp -o myapp

说真的,根据你的需要,即使生成一个makefile也可能有点过分。如果你只是对一个快速而肮脏的“让我们看看我们是否可以在Linux上获得一个工作程序”感兴趣,那么只需将你的代码文件放在g ++中,看看会发生什么。