这是人们一直遇到的标准问题,但我无法让它开始工作。我在LinuxMint17.3上,通过repo完成了安装。当我试图编译5_Simulations目录(真的,fluidsGL)时,我会得到以下错误:
>>> WARNING - libGL.so not found, refer to CUDA Getting Started Guide for how to find and install them. <<<
>>> WARNING - libGLU.so not found, refer to CUDA Getting Started Guide for how to find and install them. <<<
>>> WARNING - libX11.so not found, refer to CUDA Getting Started Guide for how to find and install them. <<<
但是,在系统中确实存在这些问题,例如:
[name@host: fluidsGL]$ locate libGL.so
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/nvidia-352/libGL.so
/usr/lib/nvidia-352/libGL.so.1
/usr/lib/nvidia-352/libGL.so.352.68
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib32/nvidia-352/libGL.so
/usr/lib32/nvidia-352/libGL.so.1
/usr/lib32/nvidia-352/libGL.so.352.6
即使是与/usr/lib/lib的符号链接,与nvidia-352版本的链接也不起作用。有谁有过这个问题吗?我尽量不把电脑搞砸,因为当我开始搞这种东西的时候,我突然遇到了司机不工作的问题。
发布于 2016-01-07 06:50:58
Linux不是官方支持的CUDA发行版。因此,您使用的CUDA安装方法(在本例中是驱动程序安装部分)可能是将必要的GL库放置在makefile无法找到的地方。
如果您研究构建目录中的findgllib.mk
makefile "helper“文件,我怀疑基于debian的发行版将遵循该.mk
文件中的UBUNTU
路径。对于非ppc和非arm分支,您将发现如下定义:
ifeq ("$(UBUNTU)","0")
ifeq ...
...
else
GLPATH ?= /usr/lib/$(UBUNTU_PKG_NAME)
GLLINK ?= -L/usr/lib/$(UBUNTU_PKG_NAME)
DFLT_PATH ?= /usr/lib
鉴于此:
.mk
文件中的GLPATH定义是一个“非覆盖”定义(即?=
)。我们可以“覆盖”或用/usr/lib
中的“已知好”替换由makefile编写的GLPATH定义,其中之一是:
GLPATH=/usr/lib
添加到您的make
命令中。
发布于 2017-07-27 08:55:51
我也遇到了同样的问题,我尝试了所有这些,包括驱动程序安装,但是当我看到makefile(.mk)时,有指定的图形驱动程序版本,它在我使用Zorin时检查OS发行名,比如(Ubuntu,fedora等等),所以它无法找到分配给变量的路径。因此,在矿工进行更改后,它成功地运行。希望能帮上忙。
这些变化是:
//不管你有什么版本
UBUNTU_PKG_NAME = "nvidia-375"
//在此列表中添加发行版名称
ifeq (,$(filter $(DISTRO),ubuntu zorin fedora red rhel centos suse))
DISTRO =
endif
//为特定发行版添加一行
ZORIN = $(shell echo $(DISTRO) | grep -i zorin >/dev/null 2>&1; echo $$?)
//复制和粘贴相同的代码,如果需要,在指定发行版的文件中包含ubuntu代码
ifeq ("$(ZORIN)","0")
ifeq ($(HOST_ARCH)-$(TARGET_ARCH),x86_64-armv7l)
GLPATH := /usr/arm-linux-gnueabihf/lib
GLLINK := -L/usr/arm-linux-gnueabihf/lib
ifneq ($(TARGET_FS),)
GLPATH += $(TARGET_FS)/usr/lib/$(UBUNTU_PKG_NAME)
GLPATH += $(TARGET_FS)/usr/lib/arm-linux-gnueabihf
GLLINK += -L$(TARGET_FS)/usr/lib/$(UBUNTU_PKG_NAME)
GLLINK += -L$(TARGET_FS)/usr/lib/arm-linux-gnueabihf
endif
else ifeq ($(HOST_ARCH)-$(TARGET_ARCH),x86_64-ppc64le)
GLPATH := /usr/powerpc64le-linux-gnu/lib
GLLINK := -L/usr/powerpc64le-linux-gnu/lib
else
GLPATH ?= /usr/lib/$(UBUNTU_PKG_NAME)
GLLINK ?= -L/usr/lib/$(UBUNTU_PKG_NAME)
DFLT_PATH ?= /usr/lib
endif
endif
发布于 2020-03-28 07:42:45
对于普通Debian,您可能需要使用以下内容:
…
SUSE = $(shell echo $(DISTRO) | grep -i 'suse\|sles' >/dev/null 2>&1; echo $$?)
DEBIAN = $(shell echo $(DISTRO) | grep -i debian >/dev/null 2>&1; echo $$?)
ifeq ("$(UBUNTU)","0")
…
…
ifeq ("$(CENTOS)","0")
GLPATH ?= /usr/lib64/nvidia
GLLINK ?= -L/usr/lib64/nvidia
DFLT_PATH ?= /usr/lib64
endif
ifeq ("$(DEBIAN)","0")
GLPATH ?= /usr/lib/x86_64-linux-gnu
GLLINK ?= -L/usr/lib/x86_64-linux-gnu
DFLT_PATH ?= /usr/lib64
endif
# find libGL, libGLU
…
在您的cuda-samples/common/findgllib.mk
中,然后输入cuda-samples
并执行for f in $(find ?_* -name findgllib.mk); do cp -bv common/findgllib.mk $f; done
来对每个GL示例使用该文件
https://stackoverflow.com/questions/34617236
复制相似问题