QTWebdriver build with settings: Dynamic Library (.dll) doesn't work and integration problem of external library to QT Creator
ReijoSep opened this issue · 6 comments
Case 1: I tried to build dynamic Library for chromium_base project:

Build failed.
I got many LNK2019 errors: unresolved external symbol __imp__DispatchMessageW@4 referenced in function "private: bool __thiscall base::MessagePumpForUI::ProcessMessageHelper(struct tagMSG const &)" (?ProcessMessageHelper@MessagePumpForUI@base@@AAE_NABUtagMSG@@@z)
File: C:\Users\QTWEBDRIVER\qtwebdriver\out\message_pump_win.obj
Case 2: If I build Static library for chromium_base project. Output: chromium_base.lib build succeeded.
-> Now if I try to add static library chromium_base.lib (case 2 output) to QTCreator:
application.pro:
unix|win32: LIBS += -L$$PWD/../../../../../../Users/QTWEBDRIVER/qtwebdriver/out/Default/ -lchromium_base
INCLUDEPATH += $$PWD/../../../../../../Users/QTWEBDRIVER/qtwebdriver/out/Default
DEPENDPATH += $$PWD/../../../../../../Users/QTWEBDRIVER/qtwebdriver/out/Default
win32:!win32-g++: PRE_TARGETDEPS += $$PWD/../../../../../../Users/QTWEBDRIVER/qtwebdriver/out/Default/chromium_base.lib
else:unix|win32-g++: PRE_TARGETDEPS += $$PWD/../../../../../../Users/QTWEBDRIVER/qtwebdriver/out/Default/libchromium_base.a
QT Creator 4.0.2:
I got same error than case 1.
chromium_base.lib(message_pump_win.obj):-1: error: LNK2019: unresolved external symbol __imp__TranslateMessage@4 referenced in function "private: bool __thiscall base::MessagePumpForUI::ProcessMessageHelper(struct tagMSG const &)" (?ProcessMessageHelper@MessagePumpForUI@base@@AAE_NABUtagMSG@@@z)
and all other errors too.
Have you any idea, what I should do?
Hi
I proceed as follows:
1-Build qtwebdriver libs from source , using msvc 2013. This also builds chromium libs
2-Reference the QtWebdriver libs in Qtcreator. Example: https://github.com/cisco-open-source/qtbase/pull/2/files
3-Build/run application in QtCreator
Does this work for you?
Thanks for these instructions.
Example: https://github.com/cisco-open-source/qtbase/pull/2/files
-
I added one more line to .pro file:
DEFINES += _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS="1" -
I added one more line #define NOMINMAX to my application main.cpp
#define WD_ENABLE_WEB_VIEW 0
#define QT_NO_SAMPLES 1
#define NOMINMAX
#include "Headers.h"
and main function:
wd_setup(argc, argv);
Now I got the release version for my application with QTWebDriver feature.
OK. So any remaining issues?
No, yet. Now I try to integrate my application with QTWebdriver to Selenium environment. I will try to use Python language for application starting and UI element testing.
I guess we can close this?
Yes, now it works OK.