我在 ubuntu 11.10 上安装 pycuda2011.2.2,但无法完成。Cuda 是 4.0。当我这样做时:
$ make -j 4
我收到此错误:
/usr/bin/ld: cannot find -lcuda
/usr/bin/ld: skipping incompatible /usr/local/cuda/lib/libcurand.so when searching for -lcurand
为什么会出现此错误?我认为 cuda 在 64 位机器上是 32 位。但我看不出它是 32 位还是 64 位。
此外,有人可以分享代码以使“gcc 4.4”成为优先级,仅适用于我的帐户而不是所有帐户吗?
答案1
我不明白为什么你会想要make
在构建 pycuda 时运行——它甚至没有Makefile
(除了文档)。
您安装比库达./configure.py
通过使用适当的选项然后运行LDFLAGS=-L/usr/lib/nvidia-current python setup.py install
。
您需要设置LDFLAGS
环境变量,以便 pycuda 安装程序可以找到libcuda.so
,在 ubuntu 系统上它位于非标准位置(/usr/lib/nvidia-current
)。
如果你真的想问编译 CUDA SDK(在这种情况下你一定要编辑你的问题!),请参阅我的回复在 NVIDIA 论坛上。
答案2
那么-lcuda
从中删除Makefile
呢?上次我检查工具包和 sdk 时,找不到文件libcuda.so
。
编译器的严格性也发生了变化,因此-lcuda
必须位于依赖它的目标文件和其他库之后。您可能必须移至-lcuda
行末$(CC)
(或使用的任何编译器命令)。