Linux Mint 13/Ubuntu 12.04 配置CUDA 4.2 & OpenCV 2.4.2 方法

原创文章,转载请注明出处

安装平台:Mint 13 64 bit, Ubuntu 12.04同样适用,其他Linux distributions 根据情况做相应修改

CUDA 的安装

1. 从NVIDIA官网下载驱动

Toolkit(选Ubuntu 11.04 64bit),Driver, SDK

2. 安装其他依赖的库文件

sudo apt-get install g++ build-essential
sudo apt-get install freeglut3-dev libx1-dev libxmu-dev libxi-dev libgl1-mesa-glx libgl1-mesa-dev 
sudo apt-get install libopencv-dev
sudo apt-get install build-essential checkinstall cmake pkg-config yasm
sudo apt-get install libtiff4-dev libjpeg-dev libjasper-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev
sudo apt-get install python-dev python-numpy
sudo apt-get install libtbb-dev
sudo apt-get install libqt4-dev libgtk2.0-dev

3. 安装显卡驱动

需要先关闭x window, Mint 13 的方法,其他的步骤在此就不写了,网上有很多linux安装显卡驱动的教程

1 sudo killall mdm

4. 安装tookit 和 SDK

都是.sh 文件,直接用sh命令默认位置安装即可

然后添加环境变量

在 .bashrc 文件中添加下面的语句

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
export CUDA_ROOT=/usr/local/cuda/bin

安装完SDK(NVIDIA_GPU_Computing_SDK)后,默认是安装在用户名字的目录下

进入NVIDIA_GPU_Computing_SDK文件夹

然后输入make命令

sudo make

会看到如下错误

http://www.cnblogs.com/lib/librendercheckgl_x86_64.a(rendercheck_gl. cpp.o): In function `CheckBackBuffer::checkStatus(char const*, int, bool)': rendercheck_gl.cpp:(.text+0xfbb): undefined reference to `gluErrorString'

通过如下步骤修复错误

1)更改  /C/common/common.mk 和 /CUDALibraries/common/common_cudalib.mk 二个文件中 RENDERCHECKLIB 的位置,注意是这二个文件中所有出现RENDERCHECKLIB的地方,顺序修改方法如下(示例,其他地方仿照都把RENDERCHECKLIB移到最前方

原文件内容

LIB += ${OPENGLLIB} $(PARAMGLLIB) $(RENDERCHECKGLLIB) ${LIB} -ldl -rdynamic

修改后应该为

LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl –rdynamic

并且修改 common_cudalib.mk 文件中RENDERCHECKGLLIB文件的定义如下

原来内容

RENDERCHECKGLLIB := -lrendercheckgl_$(LIB_ARCH)$(LIBSUFFIX)

修改后变为

RENDERCHECKGLLIB := -Lhttp://www.cnblogs.com/../C/lib -lrendercheckgl_$(LIB_ARCH)$(LIBSUFFIX)

2)修改boxFilterNPPimageSegmentationNPPfreeImageInteropNPP,histEqualizationNPP 中的Makefile,修改UtilNPP的顺序

进入路径/CUDALibraries/src/*NPP/Makefile,然后修改如下(以freeImageInteropNPP为例

修改前

$(CXX) $(INC) $(LIB) -o freeImageInteropNPP freeImageInteropNPP.cpp -lUtilNPP_$(LIB_ARCH) -lfreeimage$(FREEIMAGELIBARCH)

修改后

$(CXX) $(INC) -o freeImageInteropNPP freeImageInteropNPP.cpp $(LIB) -lUtilNPP_$(LIB_ARCH) -lfreeimage$(FREEIMAGELIBARCH)

3)对于randomFog的Makefile,需要添加如下语句

USERENDERCHECKGL := 1

修复完成。

再次进入NVIDIA_GPU_Computing_SDK文件夹

make

可以查看CUDA版本

nvcc -V

然后进入NVIDIA_GPU_Computing_SDK/C

sudo make

NVIDIA_GPU_Computing_SDK/C/bin/linux/release查看device

deviceQuery

在次文件夹下可以运行示例程序

提醒:在配置过程中如果遇到缺少某个库文件的时候用apt-get install 安装所缺的东西即可。在运行示例程序之前最好重新安装一边显卡驱动,然后重启。

Good Luck!

关于OpenCV 中配置CUDA参考下篇日志

 

 

 

posted on 2012-09-25 17:12  Never more  阅读(1324)  评论(1)    收藏  举报

导航