How to force gcc to link an unused static library
Use –whole-archive linker option. Libraries that come after it in the command line will not have unreferenced symbols discarded. You can resume normal linking behaviour by adding –no-whole-archive after these libraries. In your example, the command will be: g++ -o program main.o -Wl,–whole-archive /path/to/libmylib.a In general, it will be: g++ -o program main.o \ -Wl,–whole-archive … Read more