This warning often happens when trying to link a 64-bit code with a 32-bit library, see this question: Skipping Incompatible Libraries at compile.
You need to distinguish 2 library files:
$CUDA_HOME/lib/libcudart.so
, the 32-bit version of the cudart
library.
$CUDA_HOME/lib64/libcudart.so
, the 64-bit version of the cudart
library.
(in your case, $CUDA_HOME
is /usr/local/cuda-5.0
)
Basically, the linker finds the 32-bit library first (-L
options are searched in order) and returns that warning even if it ends up finding the proper library.
You probably need to add $CUDA_HOME/lib64
to your LD_LIBRARY_PATH
environment variable before $CUDA_HOME/lib
so that ld
can find the proper library for your 64-bit architecture before the 32-bit version.