无法打开文件“opencv_core341.lib”

检查链接器中的输入库目录,没有问题.

发现问题在于我使用的opencv版本里库文件都集成在了opencv_worldxxx.lib中,而代码里是单独包含了几个库文件。

所以解决方法有两种:

1.修改例程代码,统一包含opecv_worldxxx.lib

2.用某种方式提取opecv_worldxxx.lib中各子库。

        直接提取是不行的,只能重新编译opencv的源码,生成相应的库。下载源码,使用CMAKE尝试编译,但提示路径错误,检查了没发现问题,不知为什么。重新下载cmake后没有问题。编译完成之后点击cmake下方的打开工程。

        进入输出文件夹并没有搜索到lib文件,进入vs后发现全是子项目,找到需要的几个lib文件对应的项目,在release x64位模式下分别生成。然后在输出文件夹根目录的lib文件夹里就有了编译好的lib文件了。记得先添加lib路径,再在输入的依赖项中添加库名。

        仍然出现 无法解析的外部符号 错误。查资料发现是库没有包含进来。所以真正需要包含的库是dll文件,而不是lib,添加的库路径也应该是dll的路径。但是发现输出文件夹里并没有dll文件,导致调用失败。

           转:            对于生成的lib文件有如下解释: 
                    如果有 dll 文件, 那么 lib 一般是一些索引信息, 记录了 dll 中函数的入口和位置, 
                    dll 中是函数的具体内容;如果只有 lib 文件,那么这个 lib 文件是静态编译出来 
                    的,索引和实现都在其中。使用静态编译的 lib 文件,在运行程序时不需要再挂 

                    动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性。

查了一个多小时没有进展,仍然不能生成dll。

然而,最终发现,直接包含opencv_world库是可以替代对各子库的包含,相关函数可以直接被找到。



你可能感兴趣的:(无法打开文件“opencv_core341.lib”)