值“MT_StaticRelease”不匹配值“MD_DynamicRelease”
解决:
在工程上右键-》属性-》c/c++-》代码生成-》运行库
改成(release为MT,debug为MTD),如果有多个工程(主工程中包含动态或者静态链接库工程)都得同样设置。即可解决!
QT总是出现无法解析外部符号
添加新文件或者改动,需要先 qmake下
qt添加外部库
LIBS += -LD:/FreqUsed/Qt/-static-vs2013/lib/ -lQt5Network -lQt5WebKitWidgets
提示无法打开输入文件Qt5WebKitWidgets542.lib,则修改static/lib目录下的文件名就好
然而并没有什么用,因为:
QWebView - QWidget: must construct a QApplication before a QPaintDevice error
The documentation mentions Webkit may not work as a static library.
From the Platform and Compiler Notes page:
WebKit is only supported as a dynamically built library. Static linkage is not supported.
Try dynamic linking instead.
项目使用了webkit,然后用static_release 版编译成功,但是运行还是报上面的错误,原来webkit不能使用静态版本
到目前,
测试了几个版本组合
qt5.4_msvc动态库
qt5.4_msvc_static静态库
qt5.4_gw动态库
qt5.4_gw_static静态库
可以明确的是:
qt5.4_gw 可以用做QT动态库版完全开发环境
vs2013 + qt5.4_msvc 可以用做QT动态库版完全开发环境
qt5.4_gw + qt5.4_gw_static 可以用做动态库版+静态库版开发环境
qt5.4_msvc + qt5.4_msvc_static + vs2013 可以用做动态库版+静态库版开发环境
解决dll依赖:
windeployqt.exe test.exe
出整包:
之前有写过笔记,可以用rar打包,然后解压同时后执行exe,比较笨,但也好用
关于新模块,webengine,gw版本不支持,只能用qt5.4_msvc版
qt导出到vs2013,编译出的程序乱码解决,在.cpp中加入:
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif