|
因为几年没有用Qt做开发,现在突然用Qt写个浏览器,然后就想到用qt,然后用Qt5.4 + vs2013 开发,写了一个QWebEngine的demo,然后对其进行发布,在我的机器上是可以正常运行,并且用Process Exploer查看了程序的加载路径,并且用Dependency Walker查看了依赖库。默认情况下程序加载Plugin是从我的安装目录下加载,为了程序发布,我在代码中设置了加载文件路径:- QTextCodec *xcodec = QTextCodec::codecForLocale() ;
- QString exeDir = xcodec->toUnicode( QByteArray(argv[0]) ) ;
- QString BKE_CURRENT_DIR = QFileInfo(exeDir).path() ;
- QStringList libpath;
- libpath << BKE_CURRENT_DIR+QString::fromLocal8Bit("/plugins/platforms");
- libpath << BKE_CURRENT_DIR <<BKE_CURRENT_DIR+QString::fromLocal8Bit("/plugins/imageformats");
- libpath << BKE_CURRENT_DIR+QString::fromLocal8Bit("/plugins");
- libpath << QApplication::libraryPaths();
- QApplication::setLibraryPaths(libpath) ;
- QApplication a(argc, argv);
复制代码 然后用Process Exploer发现加载的plugins路径是我设置的路径。但是我把它放到没有安装qt的机器上运行时,却不能显示界面,也没有报错。我打印了一些日志,发现在:
Widget w;w.show();show的时候进程就退出了,就是程序运行没有报错,但是显示的时候就退出了。我按照网上说的方法都试了,都木有用。我的程序目录为:
把安装目录下的plugins目录下的所有的插件(platfroms等)都拷贝到exe所在目录,程序还是那样,然后把整个plugins放在目录下也不能。然后写了一个不带插件Demo的程序,放到没有安装Qt的程序中可以正常运行。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|