Are you using the driver API or runtime API? If you’re using the driver API, an up-to-date nvidia driver must be installed on the target machine. If you’re using the runtime api, you additionally need to deliver “libcudart.so” with your application.
Yes, but libcudart.so is a shared library (as indicated by the .so suffix)… hence it is dynamically linked to your application rather than being statically linked. In short, your application requires libcudart.so to be present on the target system in addition to the application executable itself. You can accomplish this either by installing the CUDA Toolkit on the target computer or by redistributing libcudart.so with your application (which is explicitly allowed by the CUDA Toolkit’s EULA – see the ATTACHMENT A section at the end of EULA.txt in the doc subdirectory of the toolkit.)
Note that either way you’ll also need the NVIDIA driver (which includes the CUDA driver) to be installed on the target computer for the CUDA Runtime to be able to work.