端口Visual Studio C ++到Linux

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

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

Solutions Collecting From Web of "端口Visual Studio C ++到Linux"

我会定期使用,但尽可能使用默认规则保持简单。 随时添加依赖关系。

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

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

在之前的这种类型的移植工作中,我尝试了两种方法,而后者更容易。 我最终只写了18至20个垫片功能。

成功了,我写了一个操作系统抽象层,在许多项目上使用,只是让我在Windows本地,cygwin,Linux,VxWorks等编译一个或两个文件的微不足道的变化。

(ps)对基于C ++的操作系统抽象层的开源版本有兴趣吗?如果有足够的兴趣,我正在考虑向世界发布一个不受影响的版本,这在BOOST太重的时候非常有用 – 即嵌入式项目。

很可能你不需要autoconf(我建议你不要触摸它, 除非你喜欢痛苦 ),因为你并不想要移植到十几种Unix风格。

  1. 手工卷制作文件。 如果你有一套共享的规则,并且只有最小化的Makefile文件,那么只需指定源文件和编译选项就不会太困难。
  2. 使用GCC 4.5,因为它支持更多的C ++ 0x功能 。

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

更新 :其实你已经不能了,除非你有VC6在身边

远离自动*并配置。 这些是可怕的恕我直言。

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

如果你需要手动转换的话,我会建议像CMake这样的东西,因为即使对于大型的项目来说,做起来也很容易。

如果项目有一个简单的布局,你可以使用Qt 4的qmake来获得成功:

qmake -project 

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

当然还有其他的东西,比如cmake,但是都需要人工干预。

最快的方法呢?

 g++ *.cpp -o myapp 

严重的是,根据你的需要,甚至生成一个makefile可能是矫枉过正的。 如果你只是对一个快速而肮脏的“让我们看看能不能在Linux上得到一个工作程序”感兴趣,那就把你的代码文件放到g ++中,看看会发生什么。