背景:写了一个有使用opencv、dlib,mysql的程序,把依赖目录、库都放在同一个工程里面了,relese版本,设置在静态库中使用mfc,代码生成设置为MT,生成的exe,直接点exe,在自己电脑编译运行没问题
把工程整体拷到别的电脑,点击exe 结果有的能运行,有的就报错 0000007b。究竟是少了啥东西嘛,,,,有人知道是缺了啥嘛?

解决方案 »

  1.   

    对了,exe运行时怎么找的opencv dlib MySQL 包含目录,库文件的啊,应该和vs工程不一样吧?
      

  2.   

    https://blog.csdn.net/u010205478/article/details/88682932
      

  3.   

    depends分析exe时得等好好久,然后一堆红色的看不懂,,,关键是有的能运行,有的不能运行,试了几个电脑,不能运行的3个电脑有两个没装vs
      

  4.   

    报错就不是缺什么库的问题了,看代码,另外你目标电脑是什么系统呢?xp的话需要在C/C++命令行里设置/Zc:threadSafeInit- 
      

  5.   

    前提:首先把opencv的bin目录加入环境变量(貌似还不能太靠后?) / 或者opencv的dll放在exe目录下。mysql的bin加入环境变量,把他的libmysql.dll拷到exe同目录下(连接它的数据库)过程:当把程序在win7跑时,首先说缺少ssleay32.dll,从系统system32文件夹下拷了一个过来,
    接着又说缺少libeay32.dll,又system32拷了过来,然后程序能跑了。结论:之前同样错,于是也拷了这两文件,忘了是从哪弄过来的,估计不是x64的,因为会搜到一堆,所以000007b。
    独立运行,正常来说,设置运行时库为MT 应该就行了,所以如果报这种错误就大多是dll的错误使用,试着重新加入缺少的dll。最后虽然能运行,但程序直接停止运行了,不清楚。这个可能是由于程序本身的原因了,比如这个电脑没装cuda、cudnn等
      

  6.   

    确实是缺库,第一次没注意拷贝的dll的位置,所以错了