3 ms·
> what is painful to set up with C toolchains? This reads remarkably tongue-in-cheek, especially when combined with the "dangerously productive" remark a bit l
by perching_aix 2y ago
> what is painful to set up with C toolchains?
This reads remarkably tongue-in-cheek, especially when combined with the "dangerously productive" remark a bit later, but: navigating the maze that is picking a C runtime, a libc implementation, a compiler or potentially compiler frontend and backend, a linker, a build tool, a dependency manager, and then figuring out the linking, figuring out the dependency management, figuring out the building process, tackling version control crap (setting up submodules) if needed, then rinse repeat for every single project ever. And if you're targeting not just *nix, but also platforms people actually use (Windows), then this gets especially nasty.
Not your project? Well then you get the chance of taking a deep dive into a random assortment of these, taking up however much of your time. Or you'll just try building it and squash errors as they come. Such a great and sane toolchain and workflow.
All of this is of course completely excluding the very real factor of even knowing about these things, since being even slightly confused about this stuff is an immediate ticket to hours of research on various internet forums to even get to know what it is that you don't know - provided you don't just get sick of all this crap and move on to some other toolchain instead, or start the rote reproduction of some random dood's shitty guide, with the usual outcomes.
- lelanthran 2y ago> navigating the maze that is picking a C runtime, a libc implementation, a compiler or potentially compiler frontend and backend, a linker, a build tool, a dependency manager, and then figuring out the linking, figuring out the dependency management, figuring out the building process, You're misrepresenting this somewhat: all but two of those items listed need you to only "pick" a compiler and (as parent said) use Make. The dependency manager is a problem yes, but lets not misrepresent everything.
- perching_aix 2y agoIt comes up more when you try stuff multiplatform. Another thing I didn't touch on is the massive compatibility tables for language features one needs to look out for, in case they plan to make their code work on multiple mainstream compilers, which is arguably the prudent thing to do. I really don't think that considering the C/C++ build story as complex and frustrating would be misrepresentative.
- lelanthran 2y ago> I really don't think that considering the C/C++ build story as complex and frustrating would be misrepresentative. Who was talking about C++? This thread was about C, right? (It's possible that I didn't read very closely upthread, but I'm almost certain that we were all talking about C). I actually agree that C++ can be a pain in the rear, especially for multiplatform, and you have to pick all your options, etc. But C? Not so much. Even on multi-platform. As GP (or GGP, or GGGP, I forget how far upthread it is) said, with C all you need is a compiler, an editor and Make. That's pretty much still true, even if you're using third party libraries.