C++ Visual Studio 2012 到 Linux

Posted

技术标签:

【中文标题】C++ Visual Studio 2012 到 Linux【英文标题】:C++ Visual studio 2012 to Linux 【发布时间】:2014-06-23 13:43:17 【问题描述】:

我有一个在 Visual Studio 2012 中创建的 C++(包括 OpenMP)项目。请问哪种方法是创建可在 Linux 中执行的 makefile 文件和项目的最简单方法?

【问题讨论】:

我没有测试过,但是看看cmake.org/Wiki/CMake#Visual_Studio 其中一些 CMake 生成器会创建大量函数和宏来支持 Visual Studio 的所有编译器选项,以便 CMakeLists.txt 可以准确地重新生成 Visual Studio 项目文件。我希望 linux makefile 不需要这样做的那些。 至少它会是一个开始的地方。 我会为此使用 CMake,但我自己创建我的 CMakeLists.txt(而不是使用转换器)并使用 CMakeLists.txt 在 linux 下生成 gcc makefile 并生成 Visual Studio 项目摆脱原始的 Visual Studio 项目。 @drescherjm 是的,这会更好,但只有在项目不太大的情况下才可用。 【参考方案1】:

我的建议是手动写你的Makefile。除非你的项目很大(例如百万行源代码),否则它实际上很容易。 This 和 that 和 that 示例应该会有所帮助。

警告:tab 字符在Makefile-s 中很重要。使用知道这一点的优秀编辑器(例如emacs

GNU make 有一个很好的 documentation 和 tutorial 部分。

您可能需要将-fopenmp 添加到您的CXXFLAGS(或使用CXX=gcc -fopenmp 编译和链接)

PS:cmake 是(如automakeMakefile生成器。很多时候,手写更容易(即Makefile-s)。

【讨论】:

虽然我同意底线,但我不会说GNU make has a good documentation:我觉得它对初学者来说特别不可读,它更像是一本参考手册。掌握基本知识后再阅读。而且我没有在其中看到任何“教程”部分。另请查看this question。

以上是关于C++ Visual Studio 2012 到 Linux的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 的 Visual C++ 2012 运行时库先决条件

在 Visual Studio 2012 中编译启用 CLR 的 C++ 项目时出现 C2248 错误

Windows 窗体应用程序:访问其他窗体中的元素 Visual Studio 2012 C++

在 VS 2012 (C++) 中编译 Visual Studio 2010 项目:错误 LNK2038:检测到“_MSC_VER”不匹配:值“1600”与值“1700”不匹配

MS Visual Studio 2012 Express 是不是同时包含 C#、Visual Basic、C++? [关闭]

Visual Studio C++ - 缺少“复制到输出目录”[重复]