Versuchen Sie zu 'Machen' CUDA SDK, ld nicht finden, Bibliothek, ldconfig sagt, es kann
Ich weiß, es gibt viele andere Fragen, die ähnlich wie diese, aber keine der Lösungen postuliert, gibt es für mich arbeiten
Grundsätzlich, so dass die SDK-Beispiel-Dateien, bekomme ich /usr/bin/ld: cannot find -lcuda
würde einfach genug", finden Sie die Bibliothek und werfen Sie es zu ldconfig', außer ldconfig sagt es bereits, hat es...
$ sudo ldconfig -v | grep cuda
/usr/local/cuda/lib64:
libcudartemu.so.3 -> libcudartemu.so.3.0.14
libcudart.so.3 -> libcudart.so.3.0.14
/usr/local/cuda/lib:
libcudartemu.so.3 -> libcudartemu.so.3.0.14
libcudart.so.3 -> libcudart.so.3.0.14
libcuda.so.1 -> libcuda.so.195.36.15
libcuda.so.1 -> libcuda.so.195.36.15
libicudata.so.42 -> libicudata.so.42.1
Und ich überprüft, dort ist ein symlink libcuda.so -> libcuda.so.1
aber ich bin immer noch verwirrt, warum libcuda.so -> ...
nicht
Ich muss fehlt etwas wirklich offensichtlich. Irgendwelche Ideen?
- Fand diese Frage über Google. Da bin ich jetzt ein ähnliches problem 3 Jahre später, dachte ich, ich beachte meine Lösung: Für mindestens die CUDA 5.0 SDK-Beispiele und meine aktuellen Treiber (304.64), dieses Problem kann gelöst werden durch die Verwendung
make EXTRA_LDFLAGS="-L /usr/lib64/nvidia"
(Schalter lib64 für die lib auf 32-bit-Systeme). Der linker sucht in /usr/lib(64) aber der Treiber installiert ist, die Dinge in usr/lib(64)/nvidia, aber die mitgelieferten makefiles nutzenEXTRA_LDFLAGS
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
ldconfig
befasst sich nur mit Laufzeit-Bibliotheken, in der Erwägung, dassld
befasst sich mit build-time-Bibliotheken. Je nachdem, wie Sie installiert, die CUDA-Bibliotheken, müssen Sie möglicherweise installieren Sie ein zusätzliches Paket für den symlink verwendet Erstellungsvorgang, oder Sie brauchen, um passieren eine-L
option für gcc bzw. ld, um zu erzählen, wo die build-Zeit symlink ist./etc/ld.so.conf.d
wirkt sich nur auf ld.also, das betrifft nur die runtime. Wenn Sie möchten, irgendeine Art von semi-permanenten Lösung, dann sollten Sie schauen in die Erstellung einer makefile für Ihr Projekt.C/common/common.mk:148
. Ändern Sie diese Zeile zuLINKFLAGS += -L/usr/lib/nvidia-current
.Hinzufügen .bash_profile
und Quelle .bash_profile
make LIBRARY_PATH=/usr/lib/nvidia-current:$LIBRARY_PATH
beim Bau der SDK code samples.Versuchen Sie -L/usr/local/cuda/lib-vor -lcuda auf den compiler/linker-Befehlszeile.