Using software Serial for Adafruit Thermal library and more general cpp question
:'( it's a bitter sweet solution. 

After @majenko's last comment:


  Ah. So is there something you have to do in that IDE to say "Include the files in lib in the compilation`?


I remembered that this issue has bitten me before. Specifically, the issue of including subfolders into a sketch. 

Normally in programming languages (at least all of the ones I work in normally), you can use relative paths or namespaces to include files from subfolders, but for some reason with Arduino if you want to include files from subfolders you have to put the files in a directory named src. 

And it specifically needs to be src. You can't use lib or libs or source or whatevernameyouwant, it needs to be src. 

I can't find a spot in the arduino reference docs or the IDE's github repository that explains that you need to use src for the subfolder name, but you can find various mentions in the forums. E.g.

https://arduino.stackexchange.com/a/54655/35534

So yeah, the solution to my problem was three parts.


Adopting the Adafruit_Thermal library into my codebase so that I could edit the source code without worrying about those changes polluting the orginal.
Removing the &amp;Serial reference pass in the constructor declaration of Adafruit_Thermal.h
using the src directory name to include things from a subfolder. 




After doing this, the sketch passes verification. 

But here's the bittersweet part. After getting past all of this and seeing the compiler get past the sketch verification the bombshell dropped; the sketch is too big for the attiny:



I guess it was not meant to be :'(

Well, at least I know what was causing the linker/compiler errors and I'll be able to sleep at night :P

Thanks for your help Majenko :bows:.