使用opencv构建项目时出错
Posted
技术标签:
【中文标题】使用opencv构建项目时出错【英文标题】:Error on building project using opencv 【发布时间】:2013-11-07 15:40:01 【问题描述】:我已经安装了 Visual Studio 2013。
我下载了opencv 2.4.6.0。
我用这个教程在windows上安装opencv并配置VS:http://opencv-srf.blogspot.ro/2013/05/installing-configuring-opencv-with-vs.html。
我有 Windows 7 Ultimate SP1 x64。
到目前为止一切顺利。
我将它复制粘贴到项目http://opencv-srf.blogspot.ro/2013/06/load-display-image.html 和CTR-F5 项目中并得到以下错误:应用程序无法正确启动(0xc0000007b)。单击确定关闭应用程序。
我研究了这个错误,发现它与dll有关但没有找到合适的解决方案。
【问题讨论】:
运气好吗?你怎么了? 对不起,我这周有一些事情,所以我不能早点回答,我解决了这个问题,我正在以 x86 配置构建应用程序,我将其更改为 x64 配置,它工作正常。 我的回答有帮助吗?如果是,请考虑将其标记为正确或将正确答案放在这里,甚至删除问题;我猜你不想让问题就这样悬而未决! 【参考方案1】:如果您愿意,请确认我的这个快速想法:
您说您拥有“x64”架构,并且您提供的 OpenCV 教程使用 x86 .lib 文件来构建您的程序(我认为如果是这种情况,程序甚至不会构建,但您不会如果您查看是否使用与教程中相同的 x86 .lib 文件进行构建,不会受到伤害)
检查程序运行时所需的 .dll 文件的路径;看看你是否在PATH环境变量的配置中犯了错误(这真的很容易出错),另外,检查你放在PATH变量中的.dll的路径是x64的路径而不是x86的路径。另外,你可以把你的程序需要的所有.dll文件放在同一个文件夹的程序目录下,这是不使用PATH环境的直接方式,Windows首先查看需要的程序同目录下的.dll文件他们。
我注意到教程中的main函数不是简单的main,它是_tmain,我记得这意味着你使用windows api来创建一个win32应用程序。尝试创建一个空的 c++ 控制台应用程序,这应该给你一个 main 函数声明为 main 而不是 _tmain。 http://msdn.microsoft.com/en-us/library/h9x39eaw%28v=vs.71%29.aspx
如果是,请检查是否使用“预编译标头”进行构建,然后禁用它们。
祝你好运。
【讨论】:
【参考方案2】:首先,尽量使用CMAKE+VS自己构建源码。它确保 ONLY 生成系统所需的二进制文件,没有其他内容。您可以使用 the official guide 作为参考(请注意,他们要求安装的很多东西都是可选的; 只下载并安装那些你需要的)..
接下来,使用 CMake 为您自己的项目链接库并包含目录。它让你的生活更轻松,也让其他任何人在未来扩展/阅读你的代码。例如,要链接 OpenCV,请将以下代码行添加到项目的 CMAKE 文件中:
FIND_PACKAGE( OpenCV REQUIRED )
TARGET_LINK_LIBRARIES( myProject $OpenCV_LIBS )
希望这会有所帮助。
【讨论】:
以上是关于使用opencv构建项目时出错的主要内容,如果未能解决你的问题,请参考以下文章