The command g++ -g -c ll.cc was not able to emit object code because it does not know what T is in the class template. This means the compiler doesn’t even know whether the assignment operator and the copy constructor are overloaded for T or not. As a result, the compiler was not able to generate any code for the class template definition (ll.cc).
The “instantiation” of a template class is the emission of object code for a particular template class corresponding to a class template. At least one template class instantiation is required in one of the object files in order for the linker to be able resolve references to a particular template class.
Note that the file test.cc does not contain any instantiation, it only contains references to methods of the template class LinkedList<int>. It is impossible for test.cc to instantiate LinkedList<int> because it only includes the class template declaration (ll.h), which does not indicate how class template methods are implemented.