OpenCV3.0 或OpenCV3.1 与cuda编译出现LINK: warning LNK4044: 无法识别的选项/LC:/Program Files/XXXXXXXX/lib/x64

来源:互联网 发布:短信验证码软件 编辑:程序博客网 时间:2024/06/04 18:38

OpenCV3.0 或OpenCV3.1 与cuda编译出现LINK: warning LNK4044: 无法识别的选项“/LC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64”;已忽略的问题。好吧,为了显示更好一点,还是截个图吧。
这里写图片描述
为了防止语句有歧义,就简单说一些重点要注意的东西吧。
OpenCV的主模块的源码的文件夹名字叫做opencv-master。为啥叫做opencv-master呢,那是因为从Github下载下来然后解压的名字就是这个。
OpenCV的Contrib模块的源码的文件夹名字叫做opencv_contrib-master,取这个名字的原因也是和上面一样。如果大家的Visual Studio是中文的,那么会显示LINK: warning LNK4044: 无法识别的选项“/LC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64”;已忽略,如果是英文的,则显示LINK : warning LNK4044: unrecognized option '/LC:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5/lib/x64'; ignored。当然,如果CUDA的安装路径与版本和我的不一样,那么出现的错误提示也会稍微的不一致。
首先,在源代码下面搜索CMakeLists.txt文件,当然,最好用Everything这个小软件搜索,搜索完了之后,用文本编辑器软件打开,比如Notepad++,搜索的结果图和用文本编辑器打开的界面如下所示:
这里写图片描述
这里写图片描述
弄完之后,用Notepad++在所有已打开的文本中搜索foreach(p ${CUDA_LIBS_PATH}),至于为啥搜索这个东西呢,是因为已经有大神定位到了这一区域,为了省事儿,所以搜索这个了。这里写图片描述,具体问题主要出现在第638行代码中,这里写图片描述,将其改成下面的形式:
这里写图片描述。为了给大家方便,我还是弄个可以复制粘贴的吧。

  foreach(p ${CUDA_LIBS_PATH})    set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CMAKE_LIBRARY_PATH_FLAG}${p})  endforeach()

最后,重新Cmake。。。。

0 0
原创粉丝点击