Cảnh báo này thường xảy ra khi cố liên kết mã 64 bit với thư viện 32 bit, xem câu hỏi này: Skipping Incompatible Libraries at compile.
Bạn cần phải phân biệt các file 2 thư viện:
$CUDA_HOME/lib/libcudart.so
, phiên bản 32-bit của thư viện cudart
.
$CUDA_HOME/lib64/libcudart.so
, phiên bản 64 bit của thư viện cudart
.
(trong trường hợp của bạn, $CUDA_HOME
là /usr/local/cuda-5.0
)
Về cơ bản, các mối liên kết tìm thấy thư viện 32-bit đầu tiên (-L
tùy chọn được tìm kiếm theo thứ tự) và trả về cảnh báo rằng ngay cả khi nó kết thúc việc tìm kiếm thích hợp thư viện.
Bạn có thể cần thêm $CUDA_HOME/lib64
vào biến môi trường LD_LIBRARY_PATH
trước $CUDA_HOME/lib
để ld
có thể tìm thấy thư viện thích hợp cho kiến trúc 64 bit của bạn trước phiên bản 32 bit.
Bạn đang cố gắng biên dịch mã 64 bit? Nếu vậy, bạn cần liên kết với phiên bản 64 bit phải nằm trong '/ usr/local/cuda-5.0/lib64/libcudart.so'. – BenC