skipping incompatible libcudart.so when searching for -lcudart

前端 未结 1 1464
离开以前
离开以前 2021-01-02 22:53

When I compile .cu file with nvcc 5.0, the compiler gives me following information.

/usr/bin/ld: skipping incompatible /usr/local/cuda-5.0/lib/libcuda

1条回答
  •  不知归路
    2021-01-02 23:21

    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.

    0 讨论(0)
提交回复
热议问题