Home > Mobile >  Using cygwin64 build qt failure... Error message is "qWindowsVersionInfo () is undefined refere
Using cygwin64 build qt failure... Error message is "qWindowsVersionInfo () is undefined refere

Time:10-29

I want to study how to 10 (cygwin64) in Windows for other Linux cross-compilation build qt, but I had a few mistakes,

So I try the most simple configuration, but I still get link error (didn't find symbols qWindowsVersionInfo),

I tried to cygwin64 shell in the most simple configuration:

 
CD/cygdrive/d/Qt/Qt - build
./qt - everywhere - SRC - 5.12.3/configure - v - platform cygwin - g + +


Result error:

 
G + + - o "../bin/qmake "...
Qglobal. O: In the function 'winSp_helper:
/cygdrive/d/Qt/Qt - everywhere - SRC - 5.12.3/qtbase/SRC/corelib/global/qglobal CPP: 2098: 'qWindowsVersionInfo ()' undefined reference
/cygdrive/d/Qt/Qt - everywhere - SRC - 5.12.3/qtbase/SRC/corelib/global/qglobal CPP: 2098: (. Text + 0 x179) : truncated re ws-addressing to match: R_X86_64_PC32 for undefined symbol qWindowsVersionInfo ()
Qglobal. O: In the function 'osVer_helper:
/cygdrive/d/Qt/Qt - everywhere - SRC - 5.12.3/qtbase/SRC/corelib/global/qglobal CPP: 2114: (. Text + 0 x33a) : truncated re ws-addressing to match: R_X86_64_PC32 for undefined symbol qWindowsVersionInfo ()
Collect2: Error: ld returns 1
Make: * * * [Makefile: 189:../bin/qmake] Error 1


I found in the source code found qWindowsVersionInfo function, D: \ Qt \ Qt - everywhere - SRC - 5.12.3 \ qtbase \ SRC \ corelib \ global \ qoperatingsystemversion_win CPP

I analyzed the generated Makefile (D: \ Qt \ Qt - build \ qtbase \ qmake \ Makefile), there are target qoperatingsystemversion_win. O
 
$(SOURCE_PATH)/SRC/corelib/global/qoperatingsystemversion_win CPP
$(CXX) - c - o $@ $(CXXFLAGS) $& lt;


So the goal is to exist,

But qoperatingsystemversion_win. O has not been any references,

Error is by g + o "../bin/qmake to:
"
 
$(BUILD_PATH)/bin/qmake $(EXEEXT) : $(OBJS) $(QOBJS) qlibraryinfo. O
"$$(CXX) - o @" $(OBJS) $(QOBJS) qlibraryinfo. O $(LFLAGS)


It does not use qoperatingsystemversion_win. O target,

How do I use qoperatingsystemversion_win. O goal? The Makefile automatically generated by the configure command, can't manually change

In addition, I don't know which in this case - platform is correct? Win32 - g + + or cygwin - g + +?

If I change to the cygwin - g + +, the configure command will use cat Makefile. Unix. Unix configuration as the ultimate Makefile, error

If I change to the win32 - g + +, configure will Makefile. Unix. Win32 configuration eventually Makefile, was immediately met a new error:

 
G + + - c o main. O...
/cygdrive/d/Qt/Qt - everywhere - SRC - 5.12.3 qtbase/qmake/main CPP: In the function 'int installFileOrDirectory (const QString& The const QString&) ':
/cygdrive/d/Qt/Qt - everywhere - SRC - 5.12.3 qtbase/qmake/main CPP: 303:15: Error: ': : symlink' is not declared


Still unable to run normally,

So please tell me on the Windows 10, for the win32 platform - the difference between the g + + and cygwin - g + +, thank you!

CodePudding user response:

Don't use cyg, automatic installation, directly with msys2 QWT SSL all have

CodePudding user response:

There are some sys2 articles in my blog
  •  Tags:  
  • Qt
  • Related