好的,我有一个关于如何正确链接事物的CUDA 5.0问题,涉及内容和编程。如果可以提供任何帮助,我将非常感激!
使用CUDA 5.0的可分离编译功能,我生成了一个静态库(*.a)。当通过nvcc运行时,这可以与其他*.cu文件很好地链接,我已经做了很多次。
现在,我想要使用g++或其他工具将*.cpp文件与该静态库中的主机代码链接起来,而不是nvcc。如果我尝试这样做,我会得到编译器错误,比如:
undefined reference to __cudaRegisterLinkedBinary
我同时使用了-lcuda
和-lcudart
,并且据我所知,以正确的顺序包含了库(即-lmylib -lcuda -lcudart
)。我不认为这是一个问题。也许我错了,但我觉得我漏掉了一步,需要对我的静态库进行其他操作(设备链接?),然后才能在g++中使用它。
我错过了什么重要的东西吗?这可能吗?
额外的问题:我希望最终结果是一个动态库。我该怎么做?