码迷,mamicode.com
首页 > Windows程序 > 详细

在Windows Qt-4.8.x平台上编译Qt-5.0+ WebKit(即qtwebkit-2.3.x) Debug版注意事项

时间:2014-09-16 12:46:50      阅读:415      评论:0      收藏:0      [点我收藏+]

标签:嵌入式   vs2010   项目配置管理   

在Windows Qt-4.8.x平台上编译Qt-5.0+ WebKit(即qtwebkit-2.3.x) Debug版注意事项

跳转至: 导航 搜索

目录

C++编译问题

前提条件!!

需要安装GNUWin32软件(主要是Flex及Bison、gperf)及pthread-win32。

从idl生成.h/.cpp失败?

  1. 确保不要使用cygin里的perl和bison等程序,使用外部的Perl(我用的是5.16)和GnuWin32里的bison

VS编译器版本

  1. 请使用VS2010以上,不要再用VS2008(VS2005更加过时了),否则最终链接lib时会遇到错误:

名字导出问题

  1. QtWebKit.dll其实由下面几个子项目构成:
    1. WTF
    2. JavaScriptCore
    3. WebCore
    4. WebKit(2)
    5. QtWebKit(API)
    请为这几个项目一律添加下列预定义宏:BUILDING_WTF、BUILDING_JavaScriptCore、BUILDING_WebCore、BUILDING_WEBKIT
    同时需要修改Source\JavaScriptCore\config.h,确保#include "JSExportMacros.h"

找不到int64_t类型?

  1. 在对应的cpp(或直接修改config.h)中添加://需要把-I"..\..\..\Source\JavaScriptCore\os-win32"加入项目包含路径
    #if OS(WINDOWS) && COMPILER(MSVC)
    #include "stdint.h"
    #endif

Windows上需要pthread-win32库以提供多线程支持

直接使用预编译好的pthreads-win32-2.8.0即可

链接问题

mt.exe : general error c101008d: Failed to write the updated manifest to the resource of file "..\lib\QtWebKitd.dll"

杀毒软件的问题,删除dll,重新Build

LINK : fatal error LNK1181: cannot open input file ‘d:\qt-everywhere-opensource-src-4.8.4\lib\QtSqld4.lib‘

  1. 遇到这种问题比较容易解决,说明WebKit代码需要链接QtSqld库,打开Qt的projects.sln,选择对应模块,Build即可

确认QtTestBrowser项目链接的不是Qt内部的WebKit lib

  1. 检查对应的Makefile或VS的linker input设置
  2. 注意,WebKit官方压缩包附带的是QtTestBrowser,而Qt本身附带的是demos/browser和fancy browser

注意Windows与Linux对lib的链接依赖差别

Windows上编译QtWebKit时,删除对fontconfig.lib、qxlibd.lib的链接依赖

Windows上没有xlib plugins,删除对应引用

  1. error LNK2019: unresolved external symbol "class QObject * __cdecl qt_plugin_instance_xlib(void)" (?qt_plugin_instance_xlib@@YAPAVQObject@@XZ) referenced in function "public: __thiscall StaticxlibPluginInstance::StaticxlibPluginInstance(void)" (??0StaticxlibPluginInstance@@QAE@XZ)
  2. 修改Tools\QtTestBrowser\main.cpp,删除Q_IMPORT_PLUGIN(xlib)行

debug\WebCored.lib : fatal error LNK1106: invalid file or disk full: cannot seek to 0x40EB50B4

  1. 某些情况下,删除*.lib、*.dll、*.exp、*.pdb,重新Build,可以成功
  2. 实在不行,说明必须使用VS2010+,VS2008-已经过时了 

在Windows Qt-4.8.x平台上编译Qt-5.0+ WebKit(即qtwebkit-2.3.x) Debug版注意事项

标签:嵌入式   vs2010   项目配置管理   

原文地址:http://blog.csdn.net/cteng/article/details/39313433

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!