你好,我试图在我的Win7 Visual Studio上编译一个OpenCV(2.6.4)CUDA程序,使用静态链接,以便允许该程序在没有安装CUDA/OpenCV的另一台计算机上运行。我想我已经很接近了,但我陷入了这些错误:
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_8s_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_8s_C2R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_8s_C3R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_8s_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_8u_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_8u_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16u_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16u_C2R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16u_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16s_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16s_C2R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16s_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_32s_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_32s_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_32f_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_32f_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_8u_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_8u_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16u_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16u_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16s_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_16s_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_32s_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_32s_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_32f_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiSet_32f_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_8u_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_8u_C3MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_8u_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_16u_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_16u_C3MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_16u_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_16s_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_16s_C3MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_16s_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_32s_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_32s_C3MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_32s_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_32f_C1MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_32f_C3MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiCopy_32f_C4MR
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_8u16u_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_8u16u_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_8u16s_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_8u16s_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_8u32f_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_16u32s_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_16u32f_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_16s32s_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_16s32f_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_16u8u_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_16u8u_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_16s8u_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_16s8u_C4R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_32f8u_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_32f16u_C1R
1>opencv_core246.lib(gpumat.obj) : error LNK2001: unresolved external symbol _nppiConvert_32f16s_C1R
以下是我到目前为止所做的。已编译的OpenCV具有:
当_CUDA=ON时,构建共享的_LIBS=OFF
我运行了opencv_测试_gpu,并确认我的opencv是使用CUDA支持构建的。我还确保构建静态lib而不是动态lib,从*。lib文件大小和简单编译测试。在VS 2012方面:
包含目录=C:\opencv_built\安装\包括,运行时库= /MT,库目录=C:\Program Files\NVIDIA GPU计算工具包\CUDA\v5.5\lib\Win32; C:\opencv_built\安装\share\OpenCV\3rdparty\lib; C:\opencv_built\安装\lib;附加依赖项:cudart_static.lib;<--plhd-opencv_contrib246.libopencv_core246.libopencv_features2d246.libopencv_flann246.liblibtiff.liblibpng.liblibjpeg.liblibjasper.libopencv_highgui246.libopencv_imgproc246.libopencv_legacy246.libopencv_ml246.libopencv_nonfree246.libopencv_objdetect246.libopencv_photo246.libopencv_stitching246.libopencv_ts246。lib; comctl32. lib;%(Additional依赖)。
有人能分享一些见解吗?哪里出了问题?
我不相信(目前使用CUDA 5.5)使用npp库构建完全静态链接的应用程序是可能的。这是因为库的一部分是通过dll组件传递的。请在此阅读第15.4节
事实上,直到最近(CUDA 5.5),当一个完全静态链接的CUDA运行库被交付时,CUDA才可能实现这一点。因此,可以创建普通的CUDA应用程序,而不需要额外的CUDA dll来运行。然而,在AFAIK中,这些库(例如CUBLAS、CUFFT、CUSPARSE、NPP)都有dll组件,并且不提供可链接的库的完全静态版本。
编辑:随着新的CUDA版本的发布,一些CUDA库已经包含了静态库/链接选项。从CUDA 9.1开始,基本的CUDA运行库(libcudart)有一个静态选项(libcudart_static
,现在是nvcc
编译的默认选项),CUFFT(libcufft_static
),CUBLAS(libcublas_static
),CUSPARSE,CUSOLVER和NVGRAPH。从CUDA 9.0/9.1开始,NPP库已经被分成各种子库,但这些子库也都有静态版本。
在我的项目中,我使用一个JSON文件作为数据库(当前存储在我的计算机的本地)。它由节点修改。js和一些信息在import:我不能将数据库放在src文件夹中,因为构建是静态的,我的数据库必须是动态的。我得到这个错误: 我现在请你帮忙添加符号链接。我在node_modules中创建了文件夹“appData ”,使用了: 在我的组件中使用它,比如: 但我也得到错误: 我正在寻找一个解决方案来忽略src文
我一直试图静态地将sfml链接到C++项目,但它总是给我带来编译器错误,有人知道这里发生了什么以及如何修复它吗; 编辑: 这是产生错误的代码: 严重性代码描述项目文件行抑制状态错误LNK2019未解析外部符号_JPEG_CreateCompress在函数“private:bool__thiscall SF::Priv::ImageLoader::WriteJPG(类STD::Basic_Strin
问题内容: 在Linux中,下载了程序源并希望将其静态链接。我那里有一个巨大的Makefile 编译。预言这有点太笼统了,但是如何使二进制文件静态链接? 编辑:这样做的原因是要确保二进制文件没有依赖性(或至少尽可能少),从而使其可以在任何基于Linux的计算机上运行,甚至可以在没有Internet连接和未更新的Linux上运行。 问题答案: 大多数生成的脚本将允许您进行静态构建: 如果这样不起
又一个Docker符号链接问题。我有一堆文件,我想复制到我所有的Docker构建。我的dir结构是: 有没有办法让Docker遵循符号链接并将common_files/file.txt复制到构建的容器中?
前言 基本概念 ELF 符号 重定位:[是将符号引用与符号定义进行链接的过程][8] 动态链接 动态链接库 动态链接器(dynamic linker/loader) 过程链接表(plt) 全局偏移表(got) 重定位表 动态链接库的创建和调用 创建动态链接库 隐式使用该库 显式使用库 动态链接过程 参考资料 前言 Linux 支持动态链接库,不仅节省了磁盘、内存空间,而且可以提高程序运行效率。不过
当编译一个C程序时,它按照预处理器、编译器、汇编程序、链接器的顺序进行。