问题描述如下:
在开启
webkit配置之后,编译QtWebKit.lib的时候有一堆提示:
JSFileEntrySync.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSFileEntry.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSFileCallback.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSErrorCallback.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSEntrySync.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSEntryCallback.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSEntryArraySync.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSEntryArray.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSEntry.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSEntriesCallback.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDOMFileSystemSync.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDOMFileSystem.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDirectoryReaderSync.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDirectoryReader.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDirectoryEntrySync.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDirectoryEntry.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDeviceOrientationEvent.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDeviceMotionEvent.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDataTransferItems.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
JSDataTransferItem.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
MathMLElementFactory.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
这些提示,主要是因为这些cpp里面,被一些预
编译宏给否定了,也即是不会编译,编译器才会提示这些
没有符号的warning。
比如JSDataTransferItem.cpp文件:
- #if ENABLE(DATA_TRANSFER_ITEMS)
- #include "JSDataTransferItem.h"
- #include "Blob.h"
- #include "DataTransferItem.h"
- #include "ExceptionCode.
#if ENABLE(DATA_TRANSFER_ITEMS) 就是false的,而实际上ENABLE(DATA_TRANSFER_ITEMS)就是宏ENABLE_DATA_TRANSFER_ITEMS,在对应的makefile里面指定了-DENABLE_DATA_TRANSFER_ITEMS=0
E:\Qt_compl\qt-src-4.8.4\src\3rdparty\webkit\Source\WebKit\qt\tests\qwebframe提示:
qrc_tst_qwebframe.cpp
link /LIBPATH:"e:\Qt_compl\qt-src-4.8.4_test\lib" /LIBPATH:"e:\Qt_compl\qt-src-4.8.4_test\lib" /NOLOGO /DYNAMICBASE /
NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' versio
n='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:"tmp\obj\releas
e_static\tst_qwebframe.intermediate.manifest" /OUT:release\tst_qwebframe.exe @C:\Users\ADMINI~1\AppData\Local\Temp\nmEF23.tmp
LINK : fatal error LNK1181: cannot open input file '../../WebCore/release\webcore.lib'
NMAKE : fatal error U1077: '"d:\Program Files\Microsoft Visual Studio 9.0\VC\Bin\link.EXE"' : return code '0x49d'
这个还好解决,就是makefile指定的webcore.lib路径不对,应该倒退路径4次,但是指定正确的路径之后,就会出现一堆的链接
错误说QtWebKit.lib里面的符号未定义。
根本原因估计就是上面的那些
文件的预编译之后成了空文件,请问如何把这个问题解决?