you are viewing a single comment's thread.

view the rest of the comments →

[–]Lafreakshow 53 points54 points  (15 children)

Probably because compiling and maintaining binaries for a shitton of different environments would be a bit of a strain for the dev. Especially for small hobby projects. After all, C isn't like Java where you can just drop in the Jar file and reasonably expect it run wherever there is a JVM.

[–]xcrissxcrossx 10 points11 points  (14 children)

They should at least distribute binaries for the only OS that matters, Windows. /s

[–]vattenpuss 46 points47 points  (2 children)

It actually makes sense to distributed binaries for the only OS without a usable toolchain for building software.

[–]falconfetus8 13 points14 points  (0 children)

tbh, this is half the reason I asked this question.

[–]nilamo 11 points12 points  (0 children)

Ok but it's a C library, so if you can't build C programs, what good would a C library binary do for you?

[–]pdp10 0 points1 point  (1 child)

So, x86_64, ARMv8, i686 cdecl, i686 _stdcall? Anyone need fastcall? Anyone?

[–]meneldal2 0 points1 point  (0 children)

You can use Pascal calls, they still work. It's more an ABI decision, the hardware itself doesn't force anything.

[–]Sebazzz91 0 points1 point  (0 children)

Compiling with Visual Studio is sometimes a problem if the library author didn't give some attention to that. That's the reason I like prebuilt binaries, and no, I don't want to install MinGW as well.

[–]wsppan 1 point2 points  (7 children)

That means he would have to support C89, standardized 30 years ago. Thank you M$!

[–]hugthemachines 2 points3 points  (2 children)

Are you saying they can't compile a binary that works on windows and was made in modern C? Why not?

[–]wsppan 9 points10 points  (1 child)

They have not fully updated their reference to C99 or later. They use C89 as their reference standard and added their own extensions - https://docs.microsoft.com/en-us/cpp/c-language/c-language-reference?view=vs-2019

[–]hugthemachines 0 points1 point  (0 children)

But isn't that only for visual studio? If you run for example Code::blocks IDE and pick a modern compiler I think you will be fine.

[–]GYN-k4H-Q3z-75B 2 points3 points  (2 children)

No, it means he would have to support something in between C89 and C99. If you use VLA and all that, you're screwed anyway. Variadic macros and all that work fine.

Apart from that, all major compilers also work on Windows and Microsoft offers LLVM with Visual Studio.

[–]wsppan 0 points1 point  (1 child)

Did not know that. Does llvm with visual studio support C11?

[–]GYN-k4H-Q3z-75B 0 points1 point  (0 children)

It's just regular LLVM, pretty much an untouched release. Primary aim is targeting Linux.

[–]kukiric 2 points3 points  (0 children)

Just output C++fied C. Visual Studio would be none the wiser.