WSL2环境下无法安装Haskell CUDA包(cuda-0.12.8.0)
解决cabal安装cuda-0.12.8.0时找不到libcuda库的问题
针对你在WSL Ubuntu 24.04环境下,使用cabal install cuda-0.12.8.0时出现的找不到cuda库的错误,结合WSL环境的特殊性,按以下步骤修复:
直接通过cabal参数指定库路径
既然已知libcuda.so位于/usr/lib/wsl/lib,CUDA头文件在/usr/local/cuda-12.8/include,安装时直接传递路径参数:cabal install cuda-0.12.8.0 --extra-lib-dirs=/usr/lib/wsl/lib --extra-include-dirs=/usr/local/cuda-12.8/include将库软链接到系统标准搜索路径
WSL的/usr/lib/wsl/lib不在默认库搜索路径内,即使配置了LD_LIBRARY_PATH,cabal的配置脚本可能未正确读取。可创建软链接到系统标准库目录:sudo ln -s /usr/lib/wsl/lib/libcuda.so /usr/lib/x86_64-linux-gnu/libcuda.so sudo ln -s /usr/lib/wsl/lib/libcuda.so.1 /usr/lib/x86_64-linux-gnu/libcuda.so.1执行完成后重新运行安装命令:
cabal install cuda-0.12.8.0手动创建cuda.buildinfo文件(备选方案)
如果上述方法无效,可手动创建cuda.buildinfo文件指定路径,放置在执行cabal命令的目录下:include-dirs: /usr/local/cuda-12.8/include extra-lib-dirs: /usr/lib/wsl/lib libraries: cuda之后再次执行安装命令。
验证库的可访问性
先确认编译器能找到库,创建测试文件test.c:#include <cuda.h> int main() { return 0; }执行编译测试:
clang -o test_cuda test.c -lcuda -L/usr/lib/wsl/lib -I/usr/local/cuda-12.8/include若编译成功,说明库路径无问题,再重试cabal安装。
内容的提问来源于stack exchange,提问作者superstate
相关产品推荐
相关产品推荐

