首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/usr/bin/ld:无法找到-lcudart

/usr/bin/ld:无法找到-lcudart
EN

Stack Overflow用户
提问于 2012-03-09 12:13:32
回答 2查看 16.9K关注 0票数 7

在试图编译CUDA程序时,我收到了以下消息:

/usr/bin/ld:找不到-lcudart

以前从没犯过这样的错误。我的路有问题吗?

下面是编译命令:

gfortran -g -O2 -ffree-line-length -o .i .. /shared/-o./bin/xspecFem3d././obj/spec/program_specff3D.o././obj/spec/specfid3d_par.o././obj/spec/PML_init.o./obj/spec/计算边界_kernel.o./obj/spec/计算_kernels.o././obj/spec/计算_力_声学.o./obj/spec/计算_力_声学_pot.o./obj/spec/计算_力_声学_PML.o././obj/spec/计算_力士_弹性.o./obj/spec/计算力_弹性_Dev.o././obj/c/计算力_弹性_no.o./obj/spec/计算_Dev_openmp.o./obj/spec/计算_add_source_声学.o././obj/spec/计算_add_source_弹性.o././obj/spec/计算_偶合_声_el.o./obj/spec/计算耦合_弹性_ac.o./obj/spec/计算_stacey_actic.o./../obj/spec/compute_stacey_弹性.o./obj/spec/compute_gradient.o./obj/spec/compute_插值_dva.o././obj/spec/initialize_simulation.o.o ../. /obj/spec/read_mesh_databases.o././obj/spec/setup_points.o./obj/spec/write_write_output.o.//obj/spec/create_color_image.o ./obj/spec/write_记录仪。o .. /./obj/spec/write_output_ASCII.o././obj/spec/mesh_mesh_表面.o././obj/spec/setup_filemesher.o./obj/spec/read_拓朴_ubymary.o../obj/spec/setup_source_eiver.o././obj/spec/prepare_timerun.o././obj/spec/iterate_time.o.././obj/spec/finalize_simulation.o././obj/spec/save_adjuj-kernels.o.././obj/spec/specfer3D.o./obj/spec/组装_MPI_vector.o./obj/spec/make_引力.o././obj/spec/../obj/spec/噪声../../obj/spec/compute_add_sources_acoustic_cuda.cuda.o ../../obj/spec/compute_add_sources_elastic_cuda.cuda.o ././obj/spec/计算耦合_cuda.cuda.o./obj/spec/ _tomography.o __tomography.o_coda.cuda.o.../../obj/spec/compute_forces_elastic_cuda.cuda.o ././obj/spec/计算核_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/噪声层析成像_cuda.cuda.o ../../obj/spec/prepare_mesh_constants_cuda.cuda.o ././obj/spec/transfer_cuda.cuda.o././obj/spec/写地震图_cuda.o ../../obj/spec/save_and_compare_cpu_vs_gpu.cudacc.o ././obj/spec/erial.o -lcuda -lcudart -lcublas

/usr/bin/ld:无法找到-lcudart

collect2: ld返回1个退出状态

编辑:

我已经把链接命令改为

gfortran -g -O2 -ffree-line-length-O2 i./shared/ -L$CUDA_HOME/lib rest如下

我所有的道路似乎都很好,但我仍然有同样的错误。

Edit2:

错误是我试图编译的代码是64位,所以我需要给路径一个不同的. so 's集合,它们位于

/usr/local/cuda/lib64 64

现在,编译运行良好的ans,没有任何问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-09 13:44:43

您没有指定CUDA库到链接器的位置,这就是链接失败的原因。nvcc被“自动”配置为查找CUDA运行时库组件,但如果直接与主机编译器链接,则需要将它们的位置显式地指定到编译器。尝试将链接命令更改为:

代码语言:javascript
复制
gfortran -g -O2 -ffree-line-length-none -I../shared/ -L$CUDA_HOME/lib [rest follows]

其中CUDA_HOME表示安装CUDA工具包的路径。通常,这是linux和OS系统上的/usr/local/cuda。然后,您需要确保LD_LIBRARY_PATH包含一个用于$CUDA_HOME/lib的条目,以便可执行文件能够在运行时动态加载所需的CUDA库。

编辑:

还请参见this

票数 10
EN

Stack Overflow用户

发布于 2015-07-19 09:10:15

我把这个修好了!转到你的makefile并更改/usr/local/cuda/ to /usr/local/cuda-7.0 (如果你得到的是这样的话),它对我有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9633881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档