libcudart和本地构建的gcc链接反对错误的glibc

时间:2012-12-01 21:04:28

标签: c++ gcc linker cuda glibc

我正在尝试让CUDA5在共享群集上运行。

当我调用本地gcc构建大型应用程序时,它工作得很好。当我使用CUDA包装器时,我得到一个错误,说它无法找到glib的某些部分。

如果我指定了本地gcc库目录,为什么CUDA会查看/lib64/libc.so.6

[uid002@n001 cuda5test]$ ldd /home/ex/uid002/cuda/lib64/libcudart.so
/home/ex/uid002/cuda/lib64/libcudart.so: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/ex/uid002/cuda/lib64/libcudart.so)
    linux-vdso.so.1 =>  (0x00007fff277ff000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f5328da6000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5328b89000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f5328981000)
    libstdc++.so.6 => /home/ex/uid002/gcc/lib64/libstdc++.so.6 (0x00007f532867d000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f53283f8000)
    libgcc_s.so.1 => /home/ex/uid002/gcc/lib64/libgcc_s.so.1 (0x00007f53281e3000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f5327e67000)
    /lib64/ld-linux-x86-64.so.2 (0x000000335ae00000)

[uid002@n001 cuda5test]$ echo $LD_LIBRARY_PATH
/home/ex/uid002/cuda/lib64:/home/ex/uid002/gmp/lib:/home/ex/uid002/mpfr/lib:/home/ex/uid002/mpc/lib:/home/ex/uid002/gcc/lib64

我试图重新安装CUDA包,但这没有用。

1 个答案:

答案 0 :(得分:2)

  

libcudart.so:/lib64/libc.so.6:找不到版本`GLIBC_2.14'

此错误表示libcudart.so库已在具有glibc-2.14或更高版本的系统上进行链接。如果您的系统(在链接时和运行时)具有glibc版本> = 2.14,则可以使用该库。您的系统不满足libcudart.so的先决条件。您必须使用旧版本的libcudart.so,或升级您的系统。

(注意:错误地升级glibc是一种确定的方式,以使系统无法启动。)

  

如果我指定了本地gcc库目录,为什么CUDA会查看/lib64/libc.so.6?

Glibc不属于GCC发布版,并且完全独立。 “本地gcc库目录”不太可能包含libc.so