如何在 Visual Studio C++ 中编译只有“makefile”而没有解决方案文件的开源框架?

Posted

技术标签:

【中文标题】如何在 Visual Studio C++ 中编译只有“makefile”而没有解决方案文件的开源框架?【英文标题】:How to compile open source framework in Visual Studio C++, that has "makefile" only and no solution file? 【发布时间】:2009-07-24 15:48:10 【问题描述】:

【问题讨论】:

没有人给出答案认为这个问题应该被投票。奇怪。 也许他们觉得这个问题并不那么有趣。我回答了很多我并不真正感兴趣的问题,以获得声望,通常是有帮助的,有时是一种忏悔。 【参考方案1】:

不幸的是,这种变化没有灵丹妙药。 Make 和 Visual Studio C++ 风格的构建是非常不同的野兽。虽然它们可以执行非常相似的操作,但它们也可以具有截然不同的结构,这使得提供简单的指南非常困难。

恕我直言,实现这一目标的最佳方法是启动一个新的 C++ 项目。添加所有现有文件并逐步检查 make 文件,尝试将每个操作转换为等效的 C++ 操作。

【讨论】:

【参考方案2】:

如果您只需要一个可以通过 VC 链接到的自建二进制文件(即不集成到现有的 VS 解决方案中),请查看 MSys。它允许您将 GNU make 与 VC 一起使用。因此,您可以使用随 OS 项目提供的 GNU 构建系统,同时使用 VC 进行编译。

【讨论】:

【参考方案3】:

首先确保代码可以在 Windows 上运行。开源 C++ 代码通常依赖于 POSIX。如果是这种情况,那么您需要安装 MinGW 或 Cygwin。

如果你不熟悉跨平台编程,那么这个项目可能是一项痛苦的任务。 (编辑:这是我个人的经验。我无意让你气馁。顺便说一句,这是你从中学到最多的痛苦项目!)

【讨论】:

【参考方案4】:

为什么不将此视为学习一些新技术的机会,例如MinGW,它在编译代码时应该很少出现问题。

【讨论】:

【参考方案5】:

如果您打算继续支持多个平台,您可能会考虑迁移到跨平台构建系统,例如 cmake 或 waf。

【讨论】:

【参考方案6】:

MSVC 通过 nmake 支持自己的 make 实用程序风格,但与 GNU make 有一些不同(即参见 Use the same makefile for make (Linux) and nmake(Windows))。

因此您可能需要编辑 makefile(一些编译器和链接器选项不适用于开始)。

【讨论】:

以上是关于如何在 Visual Studio C++ 中编译只有“makefile”而没有解决方案文件的开源框架?的主要内容,如果未能解决你的问题,请参考以下文章

如何只用visual c++编译器而不安装visual studio

如何在 Ubuntu 中使用 Visual Studio Code 编译 C++ 代码? [关闭]

如何在Visual Studio和CodeBlocks中反编译C++代码

如何只用visual c++编译器而不安装visual studio

如何在 Visual Studio 2019 中有条件地编译 c++ 源文件?

Visual Studio 2010中的Visual C++如何编译、连接和运行?