我正在尝试使用NVIDIA GTX 960M在笔记本电脑上编译Magma 2.5,它总是提示链接问题。
我已将cmake版本升级到最新版本(3.14.3)。 以下是错误输出的一部分。
lib/libmagma_sparse.a(magma_sparse_generated_magma_dsampleselect.cu.o): In function `magma_dsampleselect':
tmpxft_0000080b_00000000-5_magma_dsampleselect.compute_60.cudafe1.cpp:(.text+0x337): undefined reference to `magma_sampleselect::sampleselect_alloc_size(int)'
tmpxft_0000080b_00000000-5_magma_dsampleselect.compute_60.cudafe1.cpp:(.text+0x364): undefined reference to `magma_sampleselect::realloc_if_necessary(void**, int*, int)'
tmpxft_0000080b_00000000-5_magma_dsampleselect.compute_60.cudafe1.cpp:(.text+0x4f0): undefined reference to `magma_sampleselect::sampleselect(double*, double*, double*, int*, int, int, double*)'
lib/libmagma_sparse.a(magma_sparse_generated_magma_dsampleselect.cu.o): In function `magma_dsampleselect_approx':
tmpxft_0000080b_00000000-5_magma_dsampleselect.compute_60.cudafe1.cpp:(.text+0x65a): undefined reference to `magma_sampleselect::realloc_if_necessary(void**, int*, int)'
tmpxft_0000080b_00000000-5_magma_dsampleselect.compute_60.cudafe1.cpp:(.text+0x7e5): undefined reference to `magma_sampleselect::build_searchtree(double const*, double*, int)'
tmpxft_0000080b_00000000-5_magma_dsampleselect.compute_60.cudafe1.cpp:(.text+0x872): undefined reference to `magma_sampleselect::count_buckets(double const*, double const*, int*, int, int)'
tmpxft_0000080b_00000000-5_magma_dsampleselect.compute_60.cudafe1.cpp:(.text+0x8f7): undefined reference to `magma_sampleselect::reduce_counts(int const*, int*, int)'
tmpxft_0000080b_00000000-5_magma_dsampleselect.compute_60.cudafe1.cpp:(.text+0x97e): undefined reference to `magma_sampleselect::sampleselect_findbucket(int*, int, unsigned int*, int*)'
collect2: error: ld returned 1 exit status
答案 0 :(得分:-1)
尝试将以下文件添加到libsparse_all
文件内的CMake.src
目标中:
sparse/blas/magma_dsampleselect_core.cu
sparse/blas/magma_sampleselect.cu
sparse/blas/magma_ssampleselect_core.cu
由于重新编译缓慢,我尚未验证此解决方案。