前言:
如今咱们对“java静态库”可能比较注重,看官们都想要剖析一些“java静态库”的相关内容。那么小编同时在网络上网罗了一些对于“java静态库””的相关知识,希望各位老铁们能喜欢,看官们一起来学习一下吧!OpenCV工程采用静态编译的好处主要在于,程序发布时所需要的空间更小,不需要拷贝支撑的DLL文件;而动态编译的程序发布时,必须连同支撑的OpenCV DLL文件一起拷贝,否则会出现找不到DLL的运行错误。
采用静态库编译的代码如下所示,在程序开始,加入#pragma comment指令加入了对静态库的链接(这里编译的Debug版本,如果编译的是Release版本,则需要修改相应的lib文件名)。同时在工程的属性中需要设置使用静态MFC库,以支持图形用户界面,如下图所示。
与使用动态库的代码相比,主程序完全一样,但是在链接时需要加入Windows的图形界面库,第三方软件库(编译时生成在build/3rdparty目录下)。
#include "pch.h"
#include <iostream>
#include "opencv.hpp" //OpenCV头文件
#include "highgui.hpp" //GUI界面头文件
using namespace cv; //打开cv的命名空间
//Windows图形界面库
#pragma comment(lib, "User32.lib")
#pragma comment(lib, "Gdi32.lib")
#pragma comment(lib, "Advapi32.lib")
#pragma comment(lib, "comdlg32.lib")
#ifdef _DEBUG
//第三方软件库
#pragma comment(lib, "ade.lib")
#pragma comment(lib, "IlmImfd.lib")
#pragma comment(lib, "ippiwd.lib")
#pragma comment(lib, "ippicvmt.lib")
#pragma comment(lib, "ittnotifyd.lib")
#pragma comment(lib, "libjasperd.lib")
#pragma comment(lib, "libjpeg-turbod.lib")
#pragma comment(lib, "libpngd.lib")
#pragma comment(lib, "libprotobufd.lib")
#pragma comment(lib, "libtiffd.lib")
#pragma comment(lib, "libwebpd.lib")
#pragma comment(lib, "quircd.lib")
#pragma comment(lib, "zlibd.lib")
//OpenCV软件库
#pragma comment(lib, "opencv_world420d.lib")
#endif
int main()
{
Mat img = imread("lena512color.tiff"); //读取图像
if (img.empty()) {
return -1; //如果读取图像失败,则会返回
}
imshow("lena", img); //显示图像
waitKey(0); //等待用户输入
std::cout << "Hello World!\n";
}
标签: #java静态库 #opencv420安装教程