将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是啥?

Posted

技术标签:

【中文标题】将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是啥?【英文标题】:Easiest way to "port" a Visual Studio C++ project to compile on Linux?将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是什么? 【发布时间】:2014-02-05 02:06:58 【问题描述】:

一直在开发一个 Visual Studio (2012) C++ 项目,想知道将它复制到 Linux 以便我可以在那里重新编译整个项目的最方便的方法是什么?假设 C++ 是平台无关的。

是否可以手动将所有 .h 和 .cpp 文件复制到一个文件夹中,将该文件夹复制到 Linux,然后以某种方式创建一个脚本(makefile?)来控制文件的编译方式?我不太确定 makefile 是否是我所需要的——但是否有任何机制可以让我从终端上的一个命令编译整个项目?

【问题讨论】:

这个问题可能对***.com/q/12875013/1741542有帮助 code.google.com/p/make-it-so 为大家谋福利 【参考方案1】:

对于物理部分,最简单的解决方案是从版本控制系统中获取源代码。这将处理 .cpp 和 .h 文件中的 \r\n -> \n 翻译。

在 linux 方面,几乎任何构建工具都优于原始 makemake 真的是构建系统的汇编语言;您的工具可能会生成 makefile 作为中介,但不要试图维护它。

【讨论】:

取决于构建过程的复杂性。如果只是一次性对所有 .cc 文件进行编译器,那么 makefile 可能是最简单的方法。【参考方案2】:

是的,复制文件(或如@MSalters 所说 - 签出新副本),然后为 Linux 构建工具构建一个替代 .vcxproj。请注意,Visual Studio 项目文件实际上只是一种非常奇特的 makefile。

最简单的makefile只是一个文件列表(甚至是文件类型)和一个在它们上运行的命令。编写好之后,构建就像针对 .sln 文件运行 MSBuild 一样简单。

因此,您需要决定在 Linux 上使用哪个构建系统 - CMake 是一个 makefile 生成器,several other systems 可用。

Someone has made a tool 解析 VS 项目文件并可以从中生成一个 makefile,但它不支持 VS2012(你可以解决这个问题,贡献)

【讨论】:

以上是关于将 Visual Studio C++ 项目“移植”到 Linux 上编译的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

将 Visual Studio C++ 移植到 Linux

如何用visual studio2012编c++程序?

使用 Visual Studio 项目使 Opencv 可移植并消除链接错误

将 Visual C++ 项目移植到 C# [关闭]

将 C++ 项目从 Visual Studio 2008 转换为 Visual Studio 2010

将 Android 应用程序从 Android Studio 移植到 Microsoft Visual Studio