我们有一个不太复杂的但是 大 (即大量文件)在VS2010中用C ++ 0x标准编写的Visual Studio C ++ Win32控制台。 它不使用任何非标准代码或任何东西(希望!)。
我现在想把它移植到Linux。 哪种方式最快的方法呢? autoconf的? 老式的make文件? 还有其他方法吗?
我们有一个不太复杂的但是 大 (即大量文件)在VS2010中用C ++ 0x标准编写的Visual Studio C ++ Win32控制台。 它不使用任何非标准代码或任何东西(希望!)。
我现在想把它移植到Linux。 哪种方式最快的方法呢? autoconf的? 老式的make文件? 还有其他方法吗?
我会使用常规make,但尽可能使用默认规则保持简单。随着时间的推移添加依赖项。
编辑: 在临时步骤中,使用mingw构建它,以便在新构建机制中有可用的构建之前,可以避免整个API移植问题。
如果您的控制台应用程序调用win32 API函数,那么您可以选择修改使用它的所有源代码还是编写实现这些函数的模块。
在此类型的先前移植工作中,我尝试了两种方式,后者更容易。我最后只写了大约18到20个垫片函数。
这是成功的,我最终编写了一个操作系统抽象层,在许多项目中使用它只是让我在Windows native,cygwin,Linux,VxWorks等上编译,对一个或两个文件进行微小的更改。
(p.s.对基于C ++的操作系统抽象层的开源版本感兴趣吗?如果有足够的兴趣,我正考虑向全世界发布它的无阻碍版本。在BOOST太重的地方 - 即嵌入式项目时,它最有用。)
最有可能你不需要autoconf(我建议你不要触摸它, 除非你喜欢痛苦),因为你不是想要移植到十几种Unix风格。
您可以从Visual Studio导出make文件。
更新:实际上你不能再了,除非你有VC6躺着
远离AUTO *并进行配置。这些都是可怕的恕我直言。
如果你能以某种方式获得VS 8或9 vcproj / sln,你可以使用 这个。我没用过它,所以我不能给出任何建议。
如果您需要手动转换,我建议使用像CMake这样的东西,因为它很容易准备得足够快,即使对于大型项目也是如此。
如果项目有一个简单的布局,你可以成功使用Qt 4的qmake,如下所示:
qmake -project
它将输出一个qmake .pro文件,该文件可以在许多平台上转换为makefile(使用qmake)。这应该可以,但不是很完美。或者,您可以安装VS的Qt插件,并让它从现有的VS项目生成专业文件。它会使你的构建系统依赖于Qt4的qmake,这可能不是你想要的。
当然还有像cmake这样的其他东西,但它们都需要人工干预。
最快的方法吗?
g++ *.cpp -o myapp
说真的,根据你的需要,即使生成一个makefile也可能有点过分。如果你只是对一个快速而肮脏的“让我们看看我们是否可以在Linux上获得一个工作程序”感兴趣,那么只需将代码文件放在g ++中,看看会发生什么。