We are having a solidity class on libraries, and we were just taught that libraries that contain public or external functions are deployed on chain... Now the question is, I use Openzeppelin's contracts all the time for creating tokens and NFTs, and these contracts have public and external functions, now if these contracts ( e.g ERC20 contract or ERC721 ) are deployed on-chain, do they have contract addresses... if yes, what are these addresses? Will be glad to learn more on this topic.
The question starts with 'Libraries', then changes to 'Contracts', so it's not really clear what you're trying to ask.
if these contracts are deployed on-chain, do they have contract addresses?
Of course they do, but it has nothing to do with whether or not they have public and external functions, and it has nothing to do with libraries either.
Okay, I guess I am still confused on the idea that libraries can be deployed on-chain separately then linked to contracts by their addresses. How exactly does this work?