擅长:python、mysql、java
<p>好吧,我没赢,但我能改变规则。在</p>
<p><a href="https://devtalk.nvidia.com/default/topic/495294/cuda-programming-and-performance/nvcc-linking-and-soname-compiling-a-c-project-that-uses-the-soname-option/" rel="nofollow">Using this as a reference</a>,我首先用nvcc编译了CUDA代码,因此创建了几个object(*.o)文件。在创建libA库时,这些对象文件被添加到gcc链接的对象文件列表中。此外,以下链接器参数被添加到gcc命令“-L/usr/local/cuda/lib64-lcudart”(我使用的是x64机器)。在</p>
<p>必须指出的是,必须将任何库依赖项放在需要它的对象文件之后。如果不这样做,gcc将抱怨未定义的引用。所有gcc库的规则都是很好的。详见下文。在</p>
<p>简而言之,以下是有效的方法:</p>
<p>库达:</p>
<pre><code>nvcc -arch=sm_30 -c *.cu -Xcompiler -fPIC
</code></pre>
<p>C:</p>
^{pr2}$
<p>非常感谢安东·科瓦连科的建议。不幸的是,我没能解决我的最终目标,但也许这会成为其他人的中间人,就像现在对我一样。在</p>