【问题标题】:cannot find -lcuda when linking with g++与 g++ 链接时找不到 -lcuda
【发布时间】:2013-05-13 22:44:19
【问题描述】:

我正在尝试使用以下命令链接这些目标文件:

g++ NT_FFT_Decomp.o T_FFT_Decomp.o SNT_FFT_Comp.o ST_FFT_Comp.o VNT_FFT_Comp.o VT_FFT_Comp.o CUDA_FFT_Comp.o Globals.o main.o \
-L/media/wiso/Programs/Setups/CUDA/include -lcuda -lcudart -lpthread -o DevicesTest

/media/wiso/Programs/Setups/CUDA

是我的cuda安装目录。 我的 LD_LIBRARY_PATH 是这样的:

Irrelevant:/media/wiso/Programs/Setups/CUDA/lib64:/media/wiso/Programs/Setups/CUDA/lib:Irrelevant

该命令给出以下错误消息:

/usr/bin/ld: cannot find -lcuda
/usr/bin/ld: cannot find -lcudart

删除 -lcuda 和 -lcudart 会生成对 cuda 函数错误的未定义引用。

如何正确链接??

【问题讨论】:

    标签: c gcc cuda linker g++


    【解决方案1】:

    需要添加编译器开关:

    -L/usr/local/cuda/lib64
    

    或类似的东西,告诉 g++ 在哪里可以找到 -lcuda-lcudart 库。

    在您的情况下,该行可能是:

    -L/media/wiso/Programs/Setups/CUDA/lib64
    

    而不是您拥有的现有语句。 (将include 更改为lib64 或可能lib

    同样,LD_LIBRARY_PATH 与编译和链接无关。

    【讨论】:

      【解决方案2】:

      -L/media/wiso/Programs/Setups/CUDA/include // WRONG: "-L" 用于库...但"/include" 通常用于标头

      建议更改:-L/media/wiso/Programs/Setups/CUDA/lib64

      完整的链接线:

      g++ NT_FFT_Decomp.o \
        T_FFT_Decomp.o  \
        SNT_FFT_Comp.o  \
        ST_FFT_Comp.o  \
        VNT_FFT_Comp.o  \
        VT_FFT_Comp.o \
        CUDA_FFT_Comp.o \ 
        Globals.o main.o \
        -L/media/wiso/Programs/Setups/CUDA/lib64 -lcuda -lcudart -lpthread \
        -o DevicesTest
      

      【讨论】:

        猜你喜欢
        • 2012-06-22
        • 1970-01-01
        • 1970-01-01
        • 2013-04-15
        • 1970-01-01
        • 2023-01-30
        • 2018-04-13
        • 2011-04-18
        • 2012-09-19
        相关资源
        最近更新 更多