一个小GUI, 用的QT5.3.2 64位 静态库(自己
编译的),在windows上OK,
现在要降为用
QT4,
现在把QT4.8.6 编译成64位静态库,参照下面的方法:
http://www.cnblogs.com/elect-fans/archive/2012/03/29/2422816.htmlhttp://blog.csdn.net/chenkent888/article/details/17153071编译OK,里边的例子也可以运行。我还把QT 4自带的例子单拿出来,使用我自己的方法编译了一下,也OK,可以运行。
我
没有使用QT的那个VS
插件。
然后把我自己的GUI的 moc等,头
文件,库文件全部换为 编译出来的QT4的,
编译OK,链接
出错,其中最多的是这个
错误:
http://s.yanghao.org/program/viewdetail.php?i=415767使用dumpbin.exe walk_dependency 导出QT5 lib , QT4 lib ,QT4 dll(官方下载的 ,32位库)中的函数,
发现一个现象,有些函数在 lib库中不存在 ,但在 dll 中存在,
比如:
QString::SetNum( float , char ,int ) , 在 QT4 dll中存在,但在QT4 lib中不存在, 但是两个库都有 QString::SetNum( double, char ,int ) , 必须把 float强制转换成 double,使用 QT4 lib时 才能链接通过。
但是使用QT5 lib不需要这样,QT5 lib也只有 QString::SetNum( double, char ,int ) ,但是不用强制转换也可以通过 。
对于
QString::QString(char const *) 的问题,实际上在我的代码中,并没有使用QString, 应该是QT本身使用了 QString 。
奇怪的问题!