Workaround: compilers on some systems seem to be sensitive to the order of arguments
As far as I can tell, some systems (in my case, it was on linuxmint, either debian or ubuntu) the compiler interprets the following differently:
1) gcc -lc main.c
2) gcc main.c -lc
The should be the same, but they are not for some compilers.
This is also not as obvious, some programs or libraries compile while others do not.
In my case, I ran the entire compilation of the f_* fl_* and fll_* libraries using the approach from (1).
Everything compiled and worked, up until I tried to compile my firewall program.
It complained that firewall_main was not found, despite all of the libraries in the path being valid.
I had to recompile the entire f_* fl_* and fll_* libraries using (2) for the firewall program to compile.
No functional changes were made, simply the order of compile arguments.
Therefore, I have implemented an alternative version of the build command, called build_alt.
This should be used if you are using a system where (2) is required over (1).