I just recently started learning c and having hard time wrapping my head around third party libraries.

Coming from Node/npm I’m used to the idea that your dependencies gets bundled in your app. But its not like that on C.

you expect your users to install your app dependencies for you, and you have to figure out the path of your own dependencies.

cause they don’t live in one nice place like node_modules. and I haven’t even began to figure out how Im supposed to know what linker flag to use for the library I use.

the tutorials just give it to you without explaining where they get it from.

and most of the sources I’ve read almost always recommends dynamic linking cause static is heavy. which brings me back to this article that now recommends static linking and I agree with that.

much of the learning materials I’ve come across are just spoon fed to you without explaining why. And its so incredibly frustrating until you look at linux history, most of the assume knowledge now is based on baggage upon baggage of layers of history.

learn c++ instead - despite what you may have heard, it is much easier to learn than c.

but neither language (and they are very different) has standardised library/package tools.

I don't think this is good advice, although I don't agree with you being downvoted because of that.

C++ is a much more complex language than C. The things you need to worry about in C are far fewer than in C++.

>C++ is a much more complex language than C

While this might be true, generic containers, sane strings, RAII and the possibility of not having to deal with pointers makes C++ an easier language to work with. You certainly need to worry about much less things long as performance is not a priority.

This is only the case, because the C standard library is quite small and has many bad parts. You can use something like STC [1] to even the playing field.

[1] https://github.com/tylov/STC