/usr/bin/ld: ne peut trouver -lcudart
Je reçois le message suivant, tout en essayant de compiler un programme CUDA:
/usr/bin/ld: ne peut trouver -lcudart
N'a jamais eu ce genre d'erreur avant. Est-ce un problème avec mon CHEMIN?
Voici la commande de la compilation:
gfortran -g -O2 -ffree-la longueur de la ligne-aucun -I../shared/-o
../../bin/xspecfem3D ../../obj/spec/program_specfem3D.o
../../obj/spec/specfem3D_par.o ../../obj/spec/PML_init.o
../../obj/spec/compute_boundary_kernel.o
../../obj/spec/compute_kernels.o
../../obj/spec/compute_forces_acoustic.o
../../obj/spec/compute_forces_acoustic_pot.o
../../obj/spec/compute_forces_acoustic_PML.o
../../obj/spec/compute_forces_elastic.o
../../obj/spec/compute_forces_elastic_Dev.o
../../obj/spec/compute_forces_elastic_noDev.o
../../obj/spec/compute_forces_elastic_Dev_openmp.o
../../obj/spec/compute_add_sources_acoustic.o
../../obj/spec/compute_add_sources_elastic.o
../../obj/spec/compute_coupling_acoustic_el.o
../../obj/spec/compute_coupling_elastic_ac.o
../../obj/spec/compute_stacey_acoustic.o
../../obj/spec/compute_stacey_elastic.o
../../obj/spec/compute_gradient.o
../../obj/spec/compute_interpolated_dva.o
../../obj/spec/initialize_simulation.o
../../obj/spec/read_mesh_databases.o ../../obj/spec/setup_GLL_points.o
../../obj/spec/write_movie_output.o
../../obj/spec/create_color_image.o ../../obj/spec/write_seismograms.o
../../obj/spec/write_output_ASCII.o
../../obj/spec/detect_mesh_surfaces.o
../../obj/spec/setup_movie_meshes.o
../../obj/spec/read_topography_bathymetry.o
../../obj/spec/setup_sources_receivers.o
../../obj/spec/prepare_timerun.o ../../obj/spec/iterate_time.o
../../obj/spec/finalize_simulation.o
../../obj/spec/save_adjoint_kernels.o ../../obj/spec/specfem3D.o
../../obj/spec/assemble_MPI_vector.o ../../obj/spec/make_gravity.o
../../obj/spec/noise_tomography.o ../../lib/libspecfem.un
../../obj/spec/check_fields_cuda.cuda.o
../../obj/spec/compute_add_sources_acoustic_cuda.cuda.o
../../obj/spec/compute_add_sources_elastic_cuda.cuda.o
../../obj/spec/compute_coupling_cuda.cuda.o
../../obj/spec/compute_forces_acoustic_cuda.cuda.o
../../obj/spec/compute_forces_elastic_cuda.cuda.o
../../obj/spec/compute_kernels_cuda.cuda.o
../../obj/spec/compute_stacey_acoustic_cuda.cuda.o
../../obj/spec/compute_stacey_elastic_cuda.cuda.o
../../obj/spec/it_update_displacement_cuda.cuda.o
../../obj/spec/noise_tomography_cuda.cuda.o
../../obj/spec/prepare_mesh_constants_cuda.cuda.o
../../obj/spec/transfer_fields_cuda.cuda.o
../../obj/spec/write_seismograms_cuda.cuda.o
../../obj/spec/save_and_compare_cpu_vs_gpu.cudacc.o
../../obj/spec/série.o -lcuda -lcudart -lcublas/usr/bin/ld: ne peut trouver -lcudart
collect2: ld a retourné 1 code de sortie
Edit:
J'ai changé le lien de commande à
gfortran -g -O2 -ffree-la longueur de la ligne-aucun -I../shared/-L$CUDA_HOME/lib [reste suit]
Et tous mes Chemins semble être OK, mais j'ai encore la même erreur.
Edit2:
L'erreur est que le code j'ai essayé de compiler était en 64 bits, j'ai donc besoin de donner le chemin d'accès d'un diferent ensemble de .alors , qui sont situés sur
/usr/local/cuda/lib64
Maintenant la compilation marche bien et sans aucun problème.
Bien sûr, mais c'est vraiment un peu gros...
Avez-vous le CUDA
toolkit
installé ?Bien sûr, je l'ai installé à côté de la CUDA lui-même
OriginalL'auteur Imperian | 2012-03-09
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas en spécifiant l'emplacement de la CUDA bibliothèques à l'éditeur de liens, c'est pourquoi le lien ne marche pas.
nvcc
est "automatiquement" dans la configuration de trouver le CUDA runtime composants de la bibliothèque, mais si vous faites un lien avec un hôte compilateur directement, vous devez explicitement spécifier leur emplacement pour le compilateur. Essayez de changer la tringlerie de commande:où
CUDA_HOME
indique le chemin où le CUDA toolkit est installé. Typiquement, cela est/usr/local/cuda
sur linux et OS X systèmes. Vous devrez alors assurez-vousLD_LIBRARY_PATH
contient une entrée pour$CUDA_HOME/lib
de sorte que le fichier exécutable sera charger dynamiquement le nécessaire CUDA bibliothèques à l'exécution.EDIT:
Voir aussi cette
Ce qui n'a pas de travail? Comment se fait-il pas de travail? Pouvez-vous mettre à jour votre question?
J'ai mis à jour la liaison de commande et LD_LIBRARY_PATH a l'entrée de $CUDA_HOME/lib , encore la même erreur se produit toujours.
OriginalL'auteur talonmies
J'ai fixé ce! Accédez à votre fichier makefile et modifier le fichier /usr/local/cuda/dans /usr/local/cuda-7.0 (si c'est ce que vous en avez)
Il a travaillé pour moi
OriginalL'auteur Antony Savvidi