nvidia-smi doesn’t tell you which version of CUDA compiler (nvcc) you are using. It identifies a driver compatibility version.
Function names that begin with cuda are part of the CUDA runtime API, not the CUDA driver API. Functions that begin with cu (but not cuda) are part of the driver API. There is no need to explicitly link against the driver API/library to use cuda****** functions.
cudaLaunch was part of the runtime API, was deprecated:
https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__EXECUTION__DEPRECATED.html
and is now removed from the latest CUDA versions.
As indicated by tera, the issue here is a misconfigured/mixed compilation environment.