【问题标题】:How are open source projects in C/C++ carried out exactly without .sln/.project files?C/C++ 中的开源项目如何在没有 .sln/.project 文件的情况下完全执行?
【发布时间】:2023-04-04 04:48:01
【问题描述】:

似乎大多数 C/C++ 中的开源项目只提供源代码,即nginx

这是一个约定,任何有兴趣加入开发团队的人都应该自己弄清楚.sln/.project 文件才能获得资格吗??

【问题讨论】:

  • -1 用于在 cmets 中拖钓 Adrien Plisson 的帖子。 SO 不适合 Windows 与 Linux 之间的激烈对决。无论如何,Linux 是优越的 ;)

标签: c++ c visual-studio open-source


【解决方案1】:

大多数开源项目都来自计算的 linux 方面。因此,他们主要使用Unix风格的构建工具,以及开源编译器。

主要的构建工具是make,它使用makefile 来了解如何构建项目。在 Windows 上,主要的开源编译器是MinGW,它是gcc 的一个win32 端口。使用这些工具可以最大限度地保留 unix 和 windows 之间的共同点。

请注意,.sln 文件特定于 microsoft 编译器,它们不能免费使用(而且成本相当高),它们不可移植,因此不适合多平台编程。

【讨论】:

  • 我知道有人将 GNU 风格的 makefile 与 MSVC 命令行编译器和链接器一起使用。
  • @httpinterpret:你显然从未跑过make。它至少和你最喜欢的编译器一样聪明,并且知道什么需要重建,什么不需要。 makefile 是依赖项的集合,允许优化重建,它与您的 .sln 文件相同,只是采用另一种更便携的形式。
  • -1 几乎没有人使用普通的 makefile。大多数项目使用构建系统。
  • @Adrien Plisson:Visual Studio Express 不限于控制台应用程序。它虽然仅限于创建 32 位应用程序。它不包含资源编辑器,也不包括 MFC 和 ATL 库。见microsoft.com/express/Support/Support-faq.aspx
  • Makefile 远非可移植,它们可能被视为中间层(例如 autotools),因此 FOSS 项目很少直接使用它们。
【解决方案2】:

有些项目使用CMake,它可以为Your Favorite Build System生成项目文件,但是如上所述,你不需要使用.sln和pro文件,即使项目是用MSVC编译器构建的, MinGW + makefiles,或 scons,或 CMake,或任何其他数量的脚本方法来调用正确的命令来编译程序都可以正常工作。

不要将 IDE 与编译器混淆!

【讨论】:

    【解决方案3】:

    不,大多数开源项目不使用 MSVC 解决方案,因为它们不可移植并且在功能方面非常薄弱。

    在大多数情况下,他们使用所谓的“构建系统”,例如 autotoolsCMakeSCons

    这些构建系统包括以下信息:

    • 源代码以及如何构建它
    • 应进行的各种系统检查(如查找各种第 3 部分库)
    • 如何构建和运行单元测试
    • 如何安装应用程序

    它们还允许执行交叉编译和打包部署等重要任务。

    这些任务通过特定的构建系统脚本语言完成,为您提供极大的灵活性。

    因此,这些构建系统通常比典型的“项目文件”强大得多,而且它们 通常与不同平台和操作系统上的多个编译器一起工作。

    一些构建系统(如 CMake)允许作为生成 MSVC 解决方案的选项之一以及构建应用程序的可选方式之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多