Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C/C++;完全在没有.sln/.project文件的情况下执行?_C++_C_Visual Studio_Open Source - Fatal编程技术网

C++ C/C++;完全在没有.sln/.project文件的情况下执行?

C++ C/C++;完全在没有.sln/.project文件的情况下执行?,c++,c,visual-studio,open-source,C++,C,Visual Studio,Open Source,似乎C/C++中的大多数开源项目只提供源代码,即 这是一个惯例吗?任何有兴趣加入开发团队的人都应该自己弄清楚.sln/.project文件,以符合资格???大多数开源项目都来自计算的linux端。因此,他们主要使用unix风格的构建工具以及开源编译器 主要的构建工具是make,它使用makefile来了解如何构建项目。在Windows上,主要的开源编译器是MinGW,它是gcc的win32端口。这些工具的使用允许在unix和windows之间保留最多的共同点 请注意,.sln文件是特定于micr

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


这是一个惯例吗?任何有兴趣加入开发团队的人都应该自己弄清楚
.sln/.project
文件,以符合资格???

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

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


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

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

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

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

  • 源代码以及如何构建它
  • 应进行的各种系统检查(如查找各种第三部分库)
  • 如何构建和运行单元测试
  • 如何安装应用程序
它们还允许执行重要任务,如交叉编译和打包以进行部署

这些任务是通过特定的构建系统脚本语言完成的,这使您具有很大的灵活性

因此,这些构建系统通常比典型的“项目文件”更强大,并且 通常使用不同平台和操作系统上的多个编译器

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

一些项目使用,它可以为您喜欢的构建系统生成项目文件,但如上所述,您不需要使用.sln和pro文件,即使一个项目是用MSVC编译器、MinGW+makefiles、scons、CMake或任何其他调用正确命令来编译程序的脚本方法构建的,也可以正常工作


不要混淆IDE和编译器

我知道有人将GNU风格的makefiles与MSVC命令行编译器和链接器一起使用。@httpexplorate:显然,您从未运行过
make
。它至少和您最喜欢的编译器一样智能,并且知道哪些需要重建,哪些不需要重建。
makefile
是一个依赖项集合,它允许优化重建,它与.sln文件相同,只是具有另一个更便携的形状。-1几乎没有人使用普通makefile。大多数项目使用生成系统。@Adrien Plisson:Visual Studio Express不限于控制台应用程序。但它仅限于创建32位应用程序。它不包含资源编辑器,不包括MFC和ATL库。参见Makefiles远不是可移植的,它们可能被视为中间层(例如autotools),因此它们很少被FOSS项目直接使用。-1用于在Adrien Plisson的帖子上发表评论。因此,Windows与Linux的竞争不是一个好地方。无论如何,Linux是优越的;)