But with .c files, when you have multiplatform project, you need to put it in other "3rd party" tools. Think about the whole zoo: Visual Studio, XCode, Code::Blocks, make, NMake, etc.
But with .c files, when you have multiplatform project, you need to put it in other "3rd party" tools. Think about the whole zoo: Visual Studio, XCode, Code::Blocks, make, NMake, etc.
No you don't: just act as if you've written the damn thing yourself. Your tools don't have to know. How being multiplatform changes anything?
Also, it shows that building C and C++ is a sad affair.
But libzip is made of .c files. How you would include it in your multiplatform project ? Visual Studio, XCode, etc...
In general it would be great if C has `#include source "some.c"` feature.
So you would add single file zip-lib.c that will contain `#include source ...` references to all needed .c files.
But C/C++ has no modules as other languages so we need palliatives like make files, etc.
It really feels strange that young devs find it so hard to use a linker.
So it appears like a little convenience just for not having to deal with installing binary libraries, at the expense of wasting everyone's time.
The time I waste installing a binary library?
Once per platform for the longevity of the project.
The time I waste building software with header only library?
Every single time I do make all.
For a start there are 4 incompatible standard libraries (dll vs static, debug vs optimized) and that's already a big headache. Also to a mix, a bunch of Visual Studio versions with enough difference to make it frequent that one compiled for e.g. 2010 doesn't work with 2015 or vice-versa.
To me the nature of those small libraries (regardless of the number of source files) is that they are highly portable and designed to always be compiled from source code to prevent those issues.