views:

193

answers:

3

Seems most open source projects in C/C++ only provide the source code,i.e. nginx

Is this a convention that anyone interested in joining the developing team should figure out the .sln/.project files himself to qualify??

+7  A: 

most open source projects are coming from the linux side of computing. thus, they are mainly using unix style build tools, as well as open source compilers.

the main build tool is make, which uses a makefile to know how to build a project. on Windows, the main open source compiler is MinGW which is a win32 port of gcc. the use of those tools allows to keep a maximum of common things between unix and windows.

note that .sln files are specific to microsoft compilers which are not free to use (and are rather costly), they are not portable and so are not suitable for multi-platform programming.

Adrien Plisson
The Express edition of Visual Studio is completely free.
nos
I know of people who use GNU-style makefiles with the MSVC command-line compiler and linker.
Donal Fellows
So each time I want to test,I'll have to rebuild the whole project ,not to mention debug...that's terrible...
httpinterpret
@httpinterpret, I'm not sure if you are trolling or just genuinely stupid...
ivans
@httpinterpret: you obviously never ran `make`. it is at least as intelligent as your favorite compiler and knows what needs rebuilding and what needs not. a `makefile` is a collection of dependencies, hich allows to optimize rebuilding, it is the same as your .sln files just in another more portable shape.
Adrien Plisson
@nos: isn't Visual Studio Express limited to command line applications which do not exceed a certain size of output ?
Adrien Plisson
Do you have a graphical debugging tool in linux as good as visual studio?
httpinterpret
@donal fellows: yes, you can use whatever compiler you like with make, you can even use make to manage dependencies among files which have nothing to do with programming... like a set of images for automatically building a tiled preprocessed image, or a set of CAD files for mechanical drawing and rendering.
Adrien Plisson
@httpinterpret: yes there are graphical debugging tools (gdb has some very nice front-end: i used the one provided with Gnat and GPS and it was awesome). and please stop trolling !
Adrien Plisson
-1 Almost nobody uses plain makefiles. Most of project use build systems.
Artyom
@Adrien Plisson: Visual Studio Express isn't limited to console applications. It is though limited to creating 32-bit applications. It does not contain a resource editor and MFC and ATL libraries are not included. See http://www.microsoft.com/express/Support/Support-faq.aspx
dalle
@artyom: you are right, plain makefiles are a pain to maintain... my answer was not clear, but that was just an example of a portable build tool. also note that many build systems are in fact makefile generators.
Adrien Plisson
@dalle: thank you for correcting. (the resource editor is available for free with the Windows SDK)
Adrien Plisson
Makefiles are far from being portable, they may be seen as intermediate layer (by for example autotools) so they are rarely used directly by FOSS projects.
Artyom
@Artyom: when projects are less dependent on non-standard libraries, developers may just write plain Makefile by hand. Writing makefile in this case is much easier than using any building systems. I would not say makefiles "are rarely used directly".
+4  A: 

No, most opensource project do not use MSVC solutions as they not portable and very weak in terms of features.

In most cases they use what is called "build-system" like autotools, CMake or SCons.

These build systems include information about:

  • source code and how to build it
  • various system checks that should be done (like find various 3rd part libraries)
  • How to build and run unit-tests
  • How to install application

They also allow important tasks like cross compilation and packaging for deploy.

These task done via specific build system scripting language that allow you big flexibility.

So, these build systems generally much more powerful then typical "project files" and they generally work with multiple compilers on different platforms and operating systems.

Some of build systems (like CMake) allow as one of the options to generate MSVC solutions as well as one of optional ways to build application.

Artyom
+4  A: 

Some projects use CMake, which can generate project files for Your Favourite Build System, but as mentioned above, you don't need to use .sln and pro files, even if a project is built with the MSVC compiler, MinGW + makefiles, or scons, or CMake, or any other number of scripty methods to invoke the right commands to compile the program will work just fine.

Don't confuse the IDE with the compiler!

Autopulated