Use the correct macros to check for libs

We better link with the libs to find if a symbol exists.
Add a check for nv path extension
Use the correct guard
Check if the abstract is actually instantiated