windows下编译opencv 3.4.0
来源:http://www.tudoupe.com时间:2022-04-06
我创建了自己的开源cv3. Four. 0 来帮助随后的调试,以便必要时您可以自己修改源代码。
通常收集32个位子,然后用曲棍球创造工作的速度会更快, 但是64个位子比较困难。
由于64人汇编今天已经完成,完全编辑程序很容易记录下来。
首先,获取源代码。我的联系信息如下:

在下载一个源目录和三个 txt 文件后,原始的建筑商没有回忆。它本来打算自己在那里的此目录位于我个人电脑上一个更偏远的位置。为了方便,可以放的浅一些,因此,它不能成为第一个目录。换句话说,最好至少有一个来源目录。此指定要将完整的 opencv 文件放入此目录 。方便管理。
下载后,启动蛋糕吉程序。选择源目录,我这里为了方便,目标目录从源代码的同一目录中选择 vs2015 。这本目录是完全由我制作的当然,我们去与Vs2015 在蛋糕gui。但目录不存在,会提示自己创建它:

由于我的目录已经是一个标准的工程目录, 它将首次显示内容为空, 然后我将转向不存在的对2016, 如下:

点击“ 配置” 指下列内容 :

选择“ 是 ”, 然后跳过下一个选项 :

自安装 vs2015,这就是为什么我选择2015年作为美好的一年。其余部分将遵守默认 。然后单击“完成”。我们首先审查了整个来源清单。在完成后,中心框显示几种可能性。可以根据自己的需要来选择。当然,在多数情况下,默认设置就足够了。在开始点击 " 托管 " 后,在中间框中,经常有一些红色条目:

不需要做什么,再来一次"未来"这项工作将很快完成。一天结束时, 单击“ 启动” 开始创建工程文件 。任务完成之后,据我所知 它在目录里在指定的目录下,对不起,对不起,对不起,对不起。打开 vs2015, 双击它 。由于工程好几十个,因此,装载过程将推迟。
加载完成后,使所创造的文件的管理更加容易,在我们汇编它们之前,我们需要作出某些安排。主要内容是创建的 obj 文件以及 dll 和 lib 文件的位置 。如果不修改,它们将分散到每个项目所在的目录中。如果您想要复制整个目录, 请使用很难消除这些不需要的文件,更不用说去掉去年的文件了,去掉这些不需要的文件是困难的,更不要说去掉去年的文件了。工程分为三类,第一个小组是为了调查周围环境而成立的。这类不用管,一类是生成库的,此外,还建立了传统的文具馆和图书馆。当然第3类最多,第二类少一些。
除了第一类,各项努力的目标是确定目标目录。方便64个人一起开店最初,在解决方案的配置管理中,添加 x64 平台类型 。来源决定从 Win32 配置复制它 。64号是我的64位元装置下面就是设置项:
一. 创建一个用于生成文件的目录。

您可以选择所有需要配置的项目(第2类和第3类)。然后,在选定的任何项目中,单击正确的按钮。然后选择“属性”,如以上图表所示(我仅用四个项目作为例子),在属性窗口中,配置所有配置的选择。平台选择“所有平台”。然后设置两个路径:
将输出目录设为 $( 解密Dir) bin$( 平面) $( Platform) $( 配置) 。
中间目录的名称如下: $( 解密Dir) compile$( Platform) $Consfuture$Project Name 。
因此,所有创建的 dll 和 lib 文件都放置在由 cmake 提供的根目录下的垃圾桶目录中, 由此产生的中间文件 obj 则放置在汇编目录中 。
注:原第三方是一个不同的目录,为了在设定后保持这一单独的目录,在第三方分类下的工作设置之后添加了第三方,具体如下:
将输出目录设为 $( 解密Dir) bin$( 平面) $( Platform) $( 配置) 。3rdparty
中间目录配置如下: $( 解析Dir) compile$( Platform) $Confuturd party$( 项目Name)
二. 设置 pdb 文件的位置 。
选择所有必须以相同方式配置的工程, 然后在属性页面中配置后续内容 :

$( OutDir)$( 目标名称 ). pdb 是程序数据库文件的名称, 位于与 dll 文件相同的目录中 。
3. 设置库目录
本节对第2和第3类以及图书馆类工作有如下不同:

您可以选择其中多个项目作为设置。 在“ 图书馆管理器” 下, 在所有设置中将“ 输出文件” 设为$( outDir)$( TargetName)$( TagetExt) (TorgetExt) 。
为第3类设定如下:

在 " Linker " 下将 " 高级 " 中的 " 进口库 " 设为 " $(OutDir)$(目标名称)。
上述三种环境类型不区分32至64个位置或调试和释放,更方便,只要选择了所有项目、配置和平台,即可一劳永逸地配置。
四,做64位标记
有两个位置必须配置, 其中之一是机器类型 :

因为64位数的配置来自32份拷贝因此,这是32人的同一设置。由于在汇编时与64位数的设置有冲突,因此难以汇编。同样,也选择了所有同类项目。在属性窗口上,选择“全部配置”。平台选择了“ x64 ” 。然后输入“linger”(第2类),则是“库管理器”)->"命令行"中,从其他选项列表中删除“/机器:x86” 。
二是x64的标致:

在预处理的定义中加上“_X64” (这个名字自己定义,没有标准,只用于标示64位的编译,后面会用到这个名字),为了方便查看,加在“<不同选项>”之前比较好。
五. 依赖目录配置

为了方便起见,可以为所有同样的工程选择一次性设置,这些工程可能依赖各种类型的工程,因此情况并非如此,因此,无论在这里做什么,所有工程都以这些工程为基础,因此,使用的工程是有用的,没有用处,不会产生消极影响。
$ (OutDir);$ (OutDir); $ (OutDir); 3Party;% (其他图书馆董事)是额外的图书馆目录设置。
6. 输入库的设置

这是要建立起来的更具挑战性的方面。各个工程都不一样,但对于不同配置,您可以同时配置所有平台 。这个位置的原始设置,它大多是一个基于蛋糕的目录结构。因此,它有一条相对的路线。现在是时候除掉所有这些相关路线了然而,对于所列作为第三方产品的产品,拆除路线并非易事。这有两个文件,一个是ipiw 我不知道你在说什么可以把路径去掉,我们还可以继续利用第三方。我不知道你在说什么 就像三党派一样我不知道你和Pippicvmt在说什么我不知道你在说什么 表格一定是picvippicvwinlibia32ippicvmt或者在它面前的第三者诸如第三党,例如第三党,picvippicvwinlib32ippicvmt.Lib。此书目录包含依赖此书书本的所有 lib 文件 。除了ipicvmt.Lib 不区分调试和释放。其他图书馆文件也有影响。调试结论是d.我不知道你在说什么,Ipiwd。ipiw.Lib 是发布版本 。就第三方而言,我们可以带第三方来又不是没有第三方的帮助 我们才能完成这个任务它是一种以国家为基础的目录配置,包括第三方内容以及依赖国家的目录设置。由于上述目录配置,可以删除所有第三方组成部分。然而,我保持了三党 在这里的大部分工作。第一批倡议中只有两项被放弃。首先,我发现,建立依赖性目录包括第三方组成部分。而后来设置时,为了对齐,第三方为每个人保留。
七. obj 文件的依附路径修改
由于改变创建中间文件的方法,这一节也应修改。有些项目参与其中,但没有详细的文件记录。工程中可能有两个或三个项目。在上述改进完成后,这篇文章是全球之声在线特稿的一部分。在生成输出窗格时,请注明有一个没有 obj 文件的项目 。找到它,要修改,请用文本编辑器打开。一个工程有两个文件 。这是相同的。 我不知道你在说什么, vcxproj。 我不知道你在说什么, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj, vcxproj我不知道你在说什么,Obj经更正的obj文件如下:
<Object Include="$(IntDir)..opencv_core_SSE4_1convert.sse4_1.obj" />
它是改变之前的一条绝对路线,例如:
<Object Include="E:opencvopencv-3.4.0vs2015modulcoreopencv_core_SSE4_1.dir$(Configration)convert.sse4_1.obj" />
对不起,对不起,这里是E: opencvopencv -3部分 之前的项目名称。 四S -2015Modulcore到IntDir。 对不起,对不起。离开这儿, dir$,它成为一条相对的路线。它也与更新的中间文件输出路径相对应 。
8名国际piw应被封锁在64以下。
到此,这是32人首次适当组装起来。然而,其中64个无法组装。这意味着ipiw 与无法连接的函数有关。一开始,我找了64位版本的ipiw。但我寻找了一个完整的圆圈 却找不到它接下来我们到互联网看Opencv收集的64篇文章。可以汇编和批准一个64位数蛋糕配置的参考。于是我也如法炮制,Cake决定汇编该工具。X64是我选择的平台确实,该项目的最终一代将取得成功。然后考虑您无法创建的64位数汇编与您拥有的64位数汇编之间的区别。归根结底,我们发现了问题的根源。
通过比较32位和64位文件夹中的两个文件夹,可以在64位以下找到 cvconfig.h 文件。
#define HAVE_IPP
#define HAVE_IPP_ICV
#define HAVE_IPP_IW
对三行进行了解密,然后将文件修改如下:
/* Intel Integrated Performance Primitives */
#ifndef _X64
#define HAVE_IPP
#define HAVE_IPP_ICV
#define HAVE_IPP_IW
#endif
添加了 _X64 预定义的判断, 这是添加到上述预定义设置中的判断 。
经过这一修改,所有32名和64名候选人都可以被召集和批准。
附加说明
以上的设置,首要目标是使文件管理更加容易。修改了生成的目录。如果不修改路径,您需要做的只是更改两个 _X64相关参数。当然,对obj文件的依赖途径也需要改变。因为它默认使用32位路径,对于64位的,需要进行修改,因此,由于有32人和64人同时在场,因此,它不能被改变为困难的道路。对于自动修改,必须贴上“平台”标签。
相关新闻
- 2022-08-04 WPF的由来
- 2022-08-04 Win11勒索软件防护怎么打开?Win11安
- 2022-08-04 Windows系统jdk的配置
- 2022-08-04 Windows10 OneNote怎么重新登录?如何重
- 2022-08-04 超好用的 Windows 效率工具推荐
- 2022-08-04 Windows如何在CMD或PowerShell中配置代理
- 2022-08-04 powershell和cmd对比
- 2022-08-04 【QT】Windows下QT下载安装
- 2022-08-04 windows下 C++ 实现类属性的get和set方
- 2022-08-04 Win11快速助手在哪里?Win11打开快速
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
