您如何端口C ++程序与生成文件从GNU C在Linux中的Visual C ++做++?

有帮助吗?

解决方案

有一件事我可以建议是使用CMake的。如果要实现通过CMake构建系统自动生成在Linux GCC的makefile文件,只需要稍作修改自动生成的VC ++项目和解决方案。

当然,这意味着学习一种全新的构建工具,所以它可能不适合你。这只是一个建议。

其他提示

我不知道一个简单的方法来简单地从一个转换为另一种,但..

假设你只使用ANSI C / C ++的功能,通常你不需要makefile文件进行转换,只是看它的.c / .cpp文件都在上面,并把它们添加到VS项目;你还必须检查有关编译器选项和定义的宏,把他们的VS项目中。我做这个编译像外籍人士,FreeType的,AGG和其他库,没有问题。

移植编译系统::您可以使用GNU的Windows移植作,并更改生成文件调用的Visual C ++的命令行工具(cl.exelink.exelib.exe等)基础上,当Windows和Linux上进行构建时,GNU编译器工具。这种方法的困难依赖于的生成文件的复杂度。

移植代码:这取决于什么API和你正在使用的库,什么编译器警告/错误/怪癖,你会遇到。对于更具体的答案,问一个更具体的问题。

CMake的被提及。我已经使用CMake和成功编译生成的Visual Studio项目。我发现CMake的文档非常无益的 - 我不得不问一个现有用户 - 与官方手册(其中成本钱),在当时是绝版。此外,它产生的Visual Studio项目是非常严格根据由谁写的转换器首选模板格式化。我无法弄清楚如何定制项目选项或组的源文件。

在Visual Studio和G ++我定期交叉编译。在大多数情况下,你只需要所有的源文件和头文件添加到Visual Studio项目(“添加现有文件”,然后添加你的整个源代码树),然后编译它。通常你会得到错误,所以你从那里开始修复bug。如果使用特定于平台的库,则可能被卡住移植到替代或删除功能。

谨慎的一个进一步字:Visual Studio和G ++具有不同的编译器怪异。在大多数情况下,他们都很好地符合C ++标准,但稍微偏离标准代码在一个工作可能无法在其他工作。我发现这与模板打交道时,与Visual Studio是奇怪的是宽容的语法错误在很多情况下,尤其如此。

CMake的具有生成视觉工作室项目的准确。

如果你不需要,我建议建立介子系统。更漂亮,类似的建议。需要python3和忍者,但没有人是完美的。 :)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top