程序的编译与执行
昨天配置了Opencv3.3+VisualStudio2015,由于本人基础太薄,中间出现了一些错误,所以写篇博客记录一下。
配置Opencv其实大体上为两步:
1.配置系统环境变量(即将包含opencv中.dll的文件夹地址放置到PATH中,这一步好多人都会出错,出错会导致最后程序编译 ,成功但无法找到.dll文件)
2.配置工程中的属性表VC++ Directories中加入包含文件(Include Diretories)、库文件(Library Directories), 然后在 Linker→Input→Additional Dependencies加入.lib文件
编译分为两个过程,编译和汇编。编译时读取源程序(.c),对之进行词法与语法的分析,将高级语言转换为等效的汇编代码(.s,低级机器语言);汇编是把汇编语言代码(.c)翻译成目标机器指令(.object,二进制文件,其为机器语言指令而不是字符)的过程。
静态编译:编译器在编译可执行文件时,把需要用到的对应动态链接库(.so或.ilb)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行时不需要依赖于动态链接库。
动态编译:动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接 库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文 件就不能运行。
静态链接库: