QNetworkAcessManager Not work in release mode on different computers - qt

I have a very strange problem I create an application that use QNetworkAcessManager to download an HTML page and get the data from this page I release my application to use it on my second laptop on the same wireless connection but it not works.
on my computer, after releasing the app and use windeploy.exe to get all the dll file for this release exe I try to use it on my computer which has QT and developed on it it works fine and get the data in the file.
the problem comes when I use it on another computer the app works but when I press the button to get the data it gets nothing just empty file
so any help for this problem
this the code which I use normal QNetworkAcessManager code to get HTML page data
this code in the button to get the data
manager->clearAccessCache();
manager->clearConnectionCache();
if (reply != nullptr)
delete reply;
reply = manager->get(QNetworkRequest(QUrl("https://normalpage.html")));
connect(reply, SIGNAL(readyRead()), this, SLOT(readyRead()));
connect(reply, SIGNAL(finished()), this, SLOT(Finish()));
readyread
void MainWindow::readyRead()
{
data.append(reply->readAll());
}
finish function I get the data of type QByteArray and use it to get the data from it the function is long
I was having this problem for about two months but I was in hurry so I used libcurl with QProcess to get this HTML page data but I now I want to know what cause this problem
update
I used the code in my main.cpp to get all the Qt warnings and errors in a file as mention in the comment by Macias and I get this into the file I used append to the file so I can get all the error it comes and I got some warnings from QSslSocket if anyone can check these warnings and see if it cause the problem as I don't know
Error file
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
)
))
Warning: QSslSocket: cannot call unresolved function SSLv23_client_method ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSL_CTX_new ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSL_library_init ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSLv23_client_method ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSL_CTX_new ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSL_library_init ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
but in the working computer I got this warrnings
Warning: QSslSocket: cannot resolve SSL_set_alpn_protos ((null):0, (null))
Warning: QSslSocket: cannot resolve SSL_CTX_set_alpn_select_cb ((null):0, (null))
Warning: QSslSocket: cannot resolve SSL_get0_alpn_selected ((null):0, (null))
Warning: QSslSocket: cannot resolve SSL_set_alpn_protos ((null):0, (null))
Warning: QSslSocket: cannot resolve SSL_CTX_set_alpn_select_cb ((null):0, (null))
Warning: QSslSocket: cannot resolve SSL_get0_alpn_selected ((null):0, (null))
Update
when i add the new dll files in the folder excutable file it give me this warrnings
Warning: QSslSocket: cannot call unresolved function SSLv23_client_method ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSL_CTX_new ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSL_library_init ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
connect the reply to the error signal
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(Error(QNetworkReply::NetworkError)));
and the slot is here
void MainWindow::Error(QNetworkReply::NetworkError Myerror)
{
qDebug() << "QNetworkReply::NetworkError = " << Myerror;
}
this what i get after connect error signal and the attribute
Warning: QSslSocket: cannot call unresolved function SSLv23_client_method ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSL_CTX_new ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function SSL_library_init ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
Warning: QSslSocket: cannot call unresolved function ERR_get_error ((null):0, (null))
Debug: QNetworkReply::NetworkError = QNetworkReply::NetworkError(UnknownNetworkError) ((null):0, (null))
Debug: Attribute in finish slot = QVariant(Invalid) ((null):0, (null))
when I added the three dlls file to the release folder on my computer which the app i working without them i got this error
when i go to the path of C:\AppServ\Apache24\bin and copied this dlls (libeay32.dll and ssleay32.dll) from this folder instead of the others i downloaded from the dll website it finally it works but what is the difference between both in the appchace folder and that are download from website?
thanks in advance

Make sure that you have libeay32.dll, libssl32.dll and ssleay32.dll libs in your deployment folder. If not just copy them next to your *.exe
windeployqt tool does not include these libs.
EDIT:
Your error is propably caused by incopatible version of openSSL library.
Version in use at compile time is different from this used at run-time. You can easily check it out. Add these lines after QApplication creation in main.cpp:
qDebug() << "SslSupport: " << QSslSocket::supportsSsl();
qDebug() << "SslLibraryBuildVersion: " << QSslSocket::sslLibraryBuildVersionString();
qDebug() << "SslLibraryRuntimeVersion: " << QSslSocket::sslLibraryVersionString();
You should install and put to your release the most similar to build version.

Related

Unresolved symbol when building Qt Cmake Project

I was working on a QT program including libtorch and opencv which was compiling without any error in my previous Ubuntu 21.04.
The libtorch library locates at /home/user/Downloads/libtorch and OpenCV installed with the following command:
apt install python3-opencv libopencv-dev libdc1394-22-dev
After upgrading my OS to Ubuntu jammy (22.04), building that program returns the following errors:
warning: libicui18n.so.67, needed by /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3, not found (try using -rpath or -rpath-link)
warning: libicuuc.so.67, needed by /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3, not found (try using -rpath or -rpath-link)
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_getDSTSavings_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_setMillis_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucol_strcoll_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucol_open_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `u_strToUpper_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_getTimeZoneDisplayName_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `uenum_close_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucol_getSortKey_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_get_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_getDefaultTimeZone_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_openTimeZones_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_close_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `u_strToLower_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `uenum_next_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucol_close_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucol_setAttribute_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_inDaylightTime_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_clone_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_open_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_openTimeZoneIDEnumeration_67'
error: /usr/local/Qt-6.2.3/lib/libQt6Core.so.6.2.3: undefined reference to `ucal_openCountryTimeZones_67'
error: collect2: error: ld returned 1 exit status
error: [CMakeFiles/example.dir/build.make:234: bina] Error 1
CMakeLists.txt is as following code:
cmake_minimum_required(VERSION 3.5)
project(example LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_PREFIX_PATH /home/user/Downloads/libtorch)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets LinguistTools REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets LinguistTools REQUIRED)
find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
set(TS_FILES example_en_US.ts)
set(PROJECT_SOURCES
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
torchtestdlg.cpp
classification.cpp
${TS_FILES}
)
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
qt_add_executable(example
${PROJECT_SOURCES}
)
qt_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
else()
if(ANDROID)
add_library(example SHARED
${PROJECT_SOURCES}
)
else()
add_executable(example
${PROJECT_SOURCES}
)
endif()
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${TS_FILES})
endif()
target_link_libraries(example PRIVATE Qt${QT_VERSION_MAJOR}::Widgets ${TORCH_LIBRARIES} ${OpenCV_LIBS})
Obviously it means that it has unresolved symbols which I couldn't understand what symbols they are.

rhipe installation error: compilation failed for package ‘Rhipe’

I am new to this and I am trying to install Rhipe-0.74 on centos 6.2. I am getting following error.
[root#hadoop-master Rhipe]# R CMD INSTALL Rhipe_0.74.0.tar.gz
* installing to library ‘/usr/lib64/R/library’
* installing *source* package ‘Rhipe’ ...
** libs
g++ -m64 -I/usr/include/R -DNDEBUG -I/usr/local/include -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -I. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DUSEAUTOSHORT -DHAVE_UINTPTR_T `/usr/lib64/R/bin/R CMD config --cppflags` `pkg-config --cflags protobuf` -c rexp.pb.cc -o rexp.pb.o
In file included from rexp.pb.cc:4:
rexp.pb.h:17:2: error: #error This file was generated by an older version of protoc which is
rexp.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please
rexp.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.
In file included from rexp.pb.cc:4:
rexp.pb.h: In member function ‘void REXP::clear_rawvalue()’:
rexp.pb.h:672: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘void REXP::set_rawvalue(const std::string&)’:
rexp.pb.h:682: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘void REXP::set_rawvalue(const char*)’:
rexp.pb.h:689: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘void REXP::set_rawvalue(const void*, size_t)’:
rexp.pb.h:696: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘std::string* REXP::mutable_rawvalue()’:
rexp.pb.h:703: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘std::string* REXP::release_rawvalue()’:
rexp.pb.h:710: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h:714: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘void STRING::clear_strval()’:
rexp.pb.h:853: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘void STRING::set_strval(const std::string&)’:
rexp.pb.h:863: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘void STRING::set_strval(const char*)’:
rexp.pb.h:870: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘void STRING::set_strval(const char*, size_t)’:
rexp.pb.h:877: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘std::string* STRING::mutable_strval()’:
rexp.pb.h:884: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h: In member function ‘std::string* STRING::release_strval()’:
rexp.pb.h:891: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.h:895: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.cc: In member function ‘void REXP::SharedCtor()’:
rexp.pb.cc:256: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.cc: In member function ‘void REXP::SharedDtor()’:
rexp.pb.cc:265: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.cc: In member function ‘virtual void REXP::Clear()’:
rexp.pb.cc:296: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.cc: In member function ‘void STRING::SharedCtor()’:
rexp.pb.cc:905: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.cc: In member function ‘void STRING::SharedDtor()’:
rexp.pb.cc:915: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
rexp.pb.cc: In member function ‘virtual void STRING::Clear()’:
rexp.pb.cc:945: error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’
make: *** [rexp.pb.o] Error 1
ERROR: compilation failed for package ‘Rhipe’
* removing ‘/usr/lib64/R/library/Rhipe’
As I understood the problem is due to multiple protobuf installation. I googled it but still couldn't resolve the issue. Please help me to solve this. Any help will be appreciated. Thank you in advance.
Maybe it's a bit late, but I was having the same issue and managed to install it by using protobuf version 2.5.0 and RHipe v0.75.1.3 in CentOS 7.
You can download this version of protobuf from here. Copy the tar.gz within /usr/local/lib and follow the instructions in the README (basically, unzip it and execute./configure, make and make install).
After that, set the required hadoop environment variables (PKG_CONFIG_PATH needs to point to /usr/local/lib/pkgconfig, or to the folder where you installed Protobuf). Finally, install the RHipe package. You can download older versions of RHipe from here.
Cheers.

Error installing QtLocation

So I'm trying to install QtLocation.
I created the qt5vars.cmd in C:\QT exactly with the text stated.
This is my error:
C:\QT\QT5>REM Set up \Microsoft Visual Studio 2013, where <arch> is \c
amd64, \c x86, etc.
The syntax of the command is incorrect.
C:\QT\QT5>CALL "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\
vcvarsall.bat" <arch>
C:\QT\QT5>configure -debug -nomake examples -opensource
'configure' is not recognized as an internal or external command,
operable program or batch file.
C:\QT\QT5>
Can anyone point me to the problem? I just installed Microsoft Visual studio and it is located in
C:\Program Files (x86)\Microsoft Visual Studio 12.0
Edit: Found out that the problem was that I needed to add x86, besides only the complete backage consists of the make and configure so therefor I downloaded the complete package.
Now I have a new error
moc_qqmlenginedebugservice_p.cpp
moc_qdebugmessageservice_p.cpp
moc_qv4debugservice_p.cpp
moc_qqmlconfigurabledebugservice_p.cpp
moc_qqmlabstractprofileradapter_p.cpp
moc_qv4profileradapter_p.cpp
moc_qqmlprofiler_p.cpp
moc_qabstractanimationjob_p.cpp
moc_qqmlbind_p.cpp
moc_qqmlconnections_p.cpp
moc_qqmldelegatemodel_p.cpp
moc_qqmldelegatemodel_p_p.cpp
moc_qqmllistmodel_p.cpp
moc_qqmllistmodel_p_p.cpp
moc_qqmllistmodelworkeragent_p.cpp
moc_qqmlobjectmodel_p.cpp
moc_qqmltimer_p.cpp
moc_qquickpackage_p.cpp
moc_qquickworkerscript_p.cpp
Generating Code...
link /NOLOGO /DYNAMICBASE /NXCOMPAT /BASE:0x66000000 /DEBUG /DLL /SUBSYS
TEM:WINDOWS /VERSION:5.40 /MANIFEST:embed /OUT:C:\TUecomotive\QT5\qt-everywhere-
opensource-src-5.4.0\qtbase\lib\Qt5Qmld.dll #C:\Users\s130031\AppData\Local\Temp
\nm9C7.tmp
Creating library C:\TUecomotive\QT5\qt-everywhere-opensource-src-5.4.0\qtbase
\lib\Qt5Qmld.lib and object C:\TUecomotive\QT5\qt-everywhere-opensource-src-5.4.
0\qtbase\lib\Qt5Qmld.exp
YarrInterpreter.obj : error LNK2019: unresolved external symbol "struct JSC::Yar
r::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)" (?newlineCreate#Yarr
#JSC##YAPAUCharacterClass#12#XZ) referenced in function "public: struct JSC::Yar
r::CharacterClass * __thiscall JSC::Yarr::YarrPattern::newlineCharacterClass(voi
d)" (?newlineCharacterClass#YarrPattern#Yarr#JSC##QAEPAUCharacterClass#23#XZ)
YarrPattern.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::C
haracterClass * __cdecl JSC::Yarr::newlineCreate(void)" (?newlineCreate#Yarr#JSC
##YAPAUCharacterClass#12#XZ)
YarrInterpreter.obj : error LNK2019: unresolved external symbol "struct JSC::Yar
r::CharacterClass * __cdecl JSC::Yarr::wordcharCreate(void)" (?wordcharCreate#Ya
rr#JSC##YAPAUCharacterClass#12#XZ) referenced in function "public: struct JSC::Y
arr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::wordcharCharacterClass(
void)" (?wordcharCharacterClass#YarrPattern#Yarr#JSC##QAEPAUCharacterClass#23#XZ
)
YarrPattern.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::C
haracterClass * __cdecl JSC::Yarr::wordcharCreate(void)" (?wordcharCreate#Yarr#J
SC##YAPAUCharacterClass#12#XZ)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::C
haracterClass * __cdecl JSC::Yarr::digitsCreate(void)" (?digitsCreate#Yarr#JSC##
YAPAUCharacterClass#12#XZ) referenced in function "public: struct JSC::Yarr::Cha
racterClass * __thiscall JSC::Yarr::YarrPattern::digitsCharacterClass(void)" (?d
igitsCharacterClass#YarrPattern#Yarr#JSC##QAEPAUCharacterClass#23#XZ)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::C
haracterClass * __cdecl JSC::Yarr::spacesCreate(void)" (?spacesCreate#Yarr#JSC##
YAPAUCharacterClass#12#XZ) referenced in function "public: struct JSC::Yarr::Cha
racterClass * __thiscall JSC::Yarr::YarrPattern::spacesCharacterClass(void)" (?s
pacesCharacterClass#YarrPattern#Yarr#JSC##QAEPAUCharacterClass#23#XZ)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::C
haracterClass * __cdecl JSC::Yarr::nondigitsCreate(void)" (?nondigitsCreate#Yarr
#JSC##YAPAUCharacterClass#12#XZ) referenced in function "public: struct JSC::Yar
r::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nondigitsCharacterClass(v
oid)" (?nondigitsCharacterClass#YarrPattern#Yarr#JSC##QAEPAUCharacterClass#23#XZ
)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::C
haracterClass * __cdecl JSC::Yarr::nonspacesCreate(void)" (?nonspacesCreate#Yarr
#JSC##YAPAUCharacterClass#12#XZ) referenced in function "public: struct JSC::Yar
r::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nonspacesCharacterClass(v
oid)" (?nonspacesCharacterClass#YarrPattern#Yarr#JSC##QAEPAUCharacterClass#23#XZ
)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::C
haracterClass * __cdecl JSC::Yarr::nonwordcharCreate(void)" (?nonwordcharCreate#
Yarr#JSC##YAPAUCharacterClass#12#XZ) referenced in function "public: struct JSC:
:Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nonwordcharCharacterC
lass(void)" (?nonwordcharCharacterClass#YarrPattern#Yarr#JSC##QAEPAUCharacterCla
ss#23#XZ)
C:\TUecomotive\QT5\qt-everywhere-opensource-src-5.4.0\qtbase\lib\Qt5Qmld.dll : f
atal error LNK1120: 7 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0
\VC\BIN\link.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0
\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
C:\QT\QT5\qt-everywhere-opensource-src-5.4.0>
I had the same problem. I found the answer here Build Qt 5.4 in windows: use VS2010 and here Unresolved external symbol attempting to build 5.2.
To solve this problem:
Check the file QT_HOME\qtdeclarative\src\qml\RegExpJitTables.h is empty or not. If it is empty, delete it. (In later versions the file is situated in each of the subdirectories of QT_HOME\qtdeclarative\src\qml\.generated\ directory.)
make sure that python is in your PATH
nmake
It works for me.

Getting unresolved external symbol when trying to compile a Qt application

I created a simple GUI application in QtCreator (QT 4.8.2) and added a function to check the network connectivity:
bool MainWindow::CheckNetworkConnectivity()
{
QList<QNetworkInterface> interface = QNetworkInterface::allInterfaces();
for(int i = 0; i < interface.count();i++)
{
QNetworkInterface inface = interface.at(i);
if(inface.IsUp && !inface.IsLoopBack)
{
ui->lstLog->addItem(inface.name()+QDateTime::currentDateTime().toString("h:m:s ap"));
ui->chkConStatus->setChecked(true);
}
else{
ui->chkConStatus->setChecked(false);
}
}
return ui->chkConStatus->checkState();
}
After that any attempts to compile the code generates the following errors:
15:21:11: Running steps for project MasterVPN...
15:21:11: Configuration unchanged, skipping qmake step.
15:21:11: Starting: "C:\Qt\Designer\bin\jom.exe"
C:\Qt\Designer\bin\jom.exe -f Makefile.Debug
cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\Qt\4.8.2\include\QtCore" -I"c:\Qt\4.8.2\include\QtGui" -I"c:\Qt\4.8.2\include" -I"c:\Qt\4.8.2\include\ActiveQt" -I"debug" -I"." -I"..\MasterVPN" -I"." -I"c:\Qt\4.8.2\mkspecs\win32-msvc2010" -Fodebug\ #C:\Users\Master\AppData\Local\Temp\mainwindow.obj.4156.31.jom
mainwindow.cpp
link /LIBPATH:"c:\Qt\4.8.2\lib" /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /MANIFEST /MANIFESTFILE:"debug\MasterVPN.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\MasterVPN.exe #C:\Users\Master\AppData\Local\Temp\MasterVPN.exe.4156.5422.jom
mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkInterface::~QNetworkInterface(void)" (__imp_??1QNetworkInterface##QAE#XZ) referenced in function "public: bool __thiscall MainWindow::CheckNetworkConnectivity(void)" (?CheckNetworkConnectivity#MainWindow##QAE_NXZ)
mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: class QString __thiscall QNetworkInterface::name(void)const " (__imp_?name#QNetworkInterface##QBE?AVQString##XZ) referenced in function "public: bool __thiscall MainWindow::CheckNetworkConnectivity(void)" (?CheckNetworkConnectivity#MainWindow##QAE_NXZ)
mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QNetworkInterface::QNetworkInterface(class QNetworkInterface const &)" (__imp_??0QNetworkInterface##QAE#ABV0##Z) referenced in function "public: bool __thiscall MainWindow::CheckNetworkConnectivity(void)" (?CheckNetworkConnectivity#MainWindow##QAE_NXZ)
mainwindow.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static class QList<class QNetworkInterface> __cdecl QNetworkInterface::allInterfaces(void)" (__imp_?allInterfaces#QNetworkInterface##SA?AV?$QList#VQNetworkInterface####XZ) referenced in function "public: bool __thiscall MainWindow::CheckNetworkConnectivity(void)" (?CheckNetworkConnectivity#MainWindow##QAE_NXZ)
debug\MasterVPN.exe : fatal error LNK1120: 4 unresolved externals
jom: C:\Users\Master\Documents\Qt\MasterVPN-build-desktop-Qt_4_8_2__4_8_2__Debug\Makefile.Debug [debug\MasterVPN.exe] Error 1120
jom: C:\Users\Master\Documents\Qt\MasterVPN-build-desktop-Qt_4_8_2__4_8_2__Debug\Makefile [debug] Error 2
15:21:17: The process "C:\Qt\Designer\bin\jom.exe" exited with code 2.
Error while building/deploying project MasterVPN (target: Desktop)
When executing step 'Make'
Can someone please point out what the cause could be?
The linker is indicating that is can not find the required functionality. This is contained within QtNetwork4.lib (if you're on a Windows platform) or the equivalent library for your platform. So you have to tell the linker that it needs to link against this library. The network module is the required one, so instead of just
QT += core gui
at least make that
QT += core gui network
That should fix the linker errors you see.

Statically compiling QWebKit 4.6.2

I tried to compile Qt+Webkit statically with MS VS 2008 and this worked.
C:\Qt\4.6.2>configure -release -static -opensource -no-fast -no-exceptions -no-accessibility -no-rtti -no-stl -no-opengl -no-openvg -no-incredibuild-xge -no-style-plastique -no-style-cleanlooks -no-style-motif -no-style-cde -no-style-windowsce -no-style-windowsmobile -no-style-s60 -no-gif -no-libpng -no-libtiff -no-libjpeg -no-libmng -no-qt3support -no-mmx -no-3dnow -no-sse -no-sse2 -no-iwmmxt -no-openssl -no-dbus -platform win32-msvc2008 -arch windows -no-phonon -no-phonon-backend -no-multimedia -no-audio-backend -no-script -no-scripttools -webkit -no-declarative
However, I get these errors whenever building a project that links statically to QWebKit:
1> Creating library C:\Users\Geeko\Desktop\Qt\TestQ\Release\TestQ.lib and object C:\Users\Geeko\Desktop\Qt\TestQ\Release\TestQ.exp
1>QtWebKit.lib(PluginPackageWin.obj) : error LNK2019: unresolved external symbol _VerQueryValueW#16 referenced in function "class WebCore::String __cdecl WebCore::getVersionInfo(void * const,class WebCore::String const &)" (?getVersionInfo#WebCore##YA?AVString#1#QAXABV21##Z)
1>QtWebKit.lib(PluginPackageWin.obj) : error LNK2019: unresolved external symbol _GetFileVersionInfoW#16 referenced in function "private: bool __thiscall WebCore::PluginPackage::fetchInfo(void)" (?fetchInfo#PluginPackage#WebCore##AAE_NXZ)
1>QtWebKit.lib(PluginPackageWin.obj) : error LNK2019: unresolved external symbol _GetFileVersionInfoSizeW#8 referenced in function "private: bool __thiscall WebCore::PluginPackage::fetchInfo(void)" (?fetchInfo#PluginPackage#WebCore##AAE_NXZ)
1>QtWebKit.lib(PluginDatabaseWin.obj) : error LNK2019: unresolved external symbol _imp_PathRemoveFileSpecW#4 referenced in function "class WebCore::String __cdecl WebCore::safariPluginsDirectory(void)" (?safariPluginsDirectory#WebCore##YA?AVString#1#XZ)
1>QtWebKit.lib(PluginDatabaseWin.obj) : error LNK2019: unresolved external symbol _imp_SHGetValueW#24 referenced in function "void __cdecl WebCore::addWindowsMediaPlayerPluginDirectory(class WTF::Vector &)" (?addWindowsMediaPlayerPluginDirectory#WebCore##YAXAAV?$Vector#VString#WebCore##$0A##WTF###Z)
1>QtWebKit.lib(PluginDatabaseWin.obj) : error LNK2019: unresolved external symbol _imp_PathCombineW#12 referenced in function "void __cdecl WebCore::addMacromediaPluginDirectories(class WTF::Vector &)" (?addMacromediaPluginDirectories#WebCore##YAXAAV?$Vector#VString#WebCore##$0A##WTF###Z)
1>C:\Users\Geeko\Desktop\Qt\TestQ\Release\TestQ.exe : fatal error LNK1120: 6 unresolved externals
Do I need to check something in the Qt project options? I have QtCore, QtGui, Network and WebKit checked.
It looks like you need to link in the windows .lib files for each of the missing functions:
VerQueryValue,GetFileVersionInfo -> version.lib
GetFileVersionInfoSize -> Coredll.lib
PathRemoveFileSpec, SHGetValue, PathCombine -> shlwapi.lib
If you are using qmake, you add:
LIBS += -lversion -lCoredll -lshlwapi
Otherwise: From the Project menu, choose Properties. Open Configuration Properties->Linker->Input. In the Additional Dependencies field, add version.lib, Coredll.lib and shlwapi.lib

Resources