Building VBox OSE v5.0.0 on Win7 - missing QT

Discussions related to using the OSE version of VirtualBox.
NTI
Posts: 21
Joined: 23. Jul 2015, 12:35

Building VBox OSE v5.0.0 on Win7 - missing QT

Post by NTI »

I'm trying to build VBox 5.0.0 from source on a windows 7 machine. I understand it requires QT for the build, but I'm not sure how to get it.

Do I have to download QT source code and build locally because I can't find a binary version of it from the QT website? Or is there anywhere that I can download the libraries directly?

I downloaded the source code of qt-everywhere-enterprise-src-5.4.2 and tried to build it using command:

Code: Select all

configure -prefix %CD%\qtbase -commercial -nomake tests
.

But it got an error for missing license information as below:

Code: Select all

Error: Qt License file (.qt-license) was not found!

Enter your license information.
Licensee:
Qt5 License Key:

Error: Invalid licensekey!
Error: Licensee info missing!
Did I get a wrong version? Do I need to pay for a license for it?

Thanks a lot.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by mpack »

You don't need QT source, just the libraries.

Windows Host Build Instructions and Prerequisites.

QT downloads.

You would need to ask the QT people about their licensing policy. I imagine the actual API is the same regardless of the licensing channel (and terms) you select.
NTI
Posts: 21
Joined: 23. Jul 2015, 12:35

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by NTI »

Thanks mpack.

I downloaded binaries of qt4.8.7, it contains most of the required QT components for building VBox, but VBoxQtCore4.lib, QtCoreVBox4.lib, VBoxQtNetwork4.lib, and QtNetworkVBox4.lib (required by VBox) are missing.

I also downloaded the source code of qt4.8.7, but building it gave me the message of "License file does not contain proper license key", even though under %USERPROFILE%, there is a .qt-license file containing:

# Qt license file (Created by the License Manager)
LicenseId="xxx"
Licensee="xxx"
# Used for Qt 4.x and Qt 5.0
LicenseKeyExt=xxxxx
# Used for Qt 5.1 ->
Qt5LicenseKey=xxxxx

Does anyone know how to get VBoxQtCore4.lib, QtCoreVBox4.lib, VBoxQtNetwork4.lib, and QtNetworkVBox4.lib?
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by mpack »

Current Virtualbox versions (since 4.3.14) require DLLs to be signed. Obviously the Qt DLLs shipped with VirtualBox are signed by Oracle. If you build the sources yourself you'll have to provide your own signature, or disable hardening. So I take back what I said before: if it isn't your goal to disable hardening (which I assume is your goal on a Windows host) then you will need to compile and sign the Qt sources yourself.

The DLLs you mention will be Oracle's built and signed versions of the Qt libs.
NTI
Posts: 21
Joined: 23. Jul 2015, 12:35

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by NTI »

Hi mpack

Thanks for the reply.

Either hardened or not, my goal is to build VBox somehow first. The error message of build VBox 5.0.0 is below:

Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': bin/moc.exe not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': bin/uic.exe not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': include/Qt/qwidget.h not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': include/QtGui/QApplication not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': include/QtNetwork/QHostAddress not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/QtCore4.lib not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/VBoxQtCore4.lib not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/QtCoreVBox4.lib not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/QtNetwork4.lib not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/VBoxQtNetwork4.lib not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/QtNetworkVBox4.lib not found

From the QT 4.7.8 binaries (I can't get v4.7.3 anywhere), I can get all the above apart from the few libs as I mentioned earlier. It's interesting that the binaries contain QtCore4.lib and QtNetwork4.lib, but not the rest required libs. I'm just wondering whether there is a binary package that includes all the required for VBox building?
Last edited by NTI on 29. Jul 2015, 14:59, edited 1 time in total.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by mpack »

Someone else will have to answer that. It's years since I last tried to build the VBox sources on a Windows host.
NTI
Posts: 21
Joined: 23. Jul 2015, 12:35

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by NTI »

I've tried to build QT4.7.3, but still can't get VBoxQtCore4.lib, QtCoreVBox4.lib, VBoxQtNetwork4.lib or QtNetworkVBox4.lib.

From the names of the libs, they seem to be related to VBox specifically. So probably building pure qt won't generate them by default. But I've got no clue what to do next :(
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by mpack »

As I said, those will be Oracle's signed builds, as you can easily verify by examining their certificates in the host. Meaning you can't reproduce them exactly. So as I said before, you can either build and self sign, or you can turn off the hardening feature.
mhanor
Volunteer
Posts: 321
Joined: 7. Oct 2009, 12:40
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: various

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by mhanor »

If you look at configure.vbs, starting at line 2066, you'll see that the script requires one of several files (example: QtCore4.lib or VBoxQtCore4.lib or QtCoreVBox4.lib). Your qt files are just not there. Look at configure.log to understand what are the files that the script tries to access and where. I'm pretty sure your Qt files are somewhere else, not in C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100, as seen in your error messages. You are not passing the qt path as argument to the configure script.
Do not use Qt5, VirtualBox is not ready for it.
NTI
Posts: 21
Joined: 23. Jul 2015, 12:35

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by NTI »

Hi mhanor

Thanks for the reply.

I understand the VBox build errors, because I didn't build QT at all at that time. I'm not looking for the libs specifically under the directory (C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100\...). What I'm doing is to build QT4.7.3 and look for all the required libs (QtCore4.lib, VBoxQtCore4.lib, QtCoreVBox4.lib, QtNetwork4.lib, VBoxQtNetwork4.lib, QtNetworkVBox4.lib) under ..\qt-4.7.3\lib\. But only QtCore4.lib and QtNetworkVBox4.lib are present.
NTI
Posts: 21
Joined: 23. Jul 2015, 12:35

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by NTI »

Hi mpack

I don't have to build VBox with the hardening feature. But to build a version of VBox (hardening or not), it requires those missing QT libs. I supposed those libs should be available after building QT source code. But they are not. I only get QtCore4.lib and QtNetwork4.lib after building QT.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by mpack »

NTI wrote:I only get QtCore4.lib and QtNetwork4.lib after building QT.
Well, "VBox" certainly won't appear in a Qt build, so I would assume that's them. Have you compared export lists?
NTI
Posts: 21
Joined: 23. Jul 2015, 12:35

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by NTI »

mpack wrote:
NTI wrote:I only get QtCore4.lib and QtNetwork4.lib after building QT.
Well, "VBox" certainly won't appear in a Qt build, so I would assume that's them. Have you compared export lists?
What do I compare against? I don't have the missing libs at all.

It does seem weird that it looks for VBox related libraries in QT build. But that's what VBox configure errors have shown:

Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/VBoxQtCore4.lib not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/QtCoreVBox4.lib not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/VBoxQtNetwork4.lib not found
Testing 'C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/QtNetworkVBox4.lib not found
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by mpack »

I mean compare the export list of QtCore4.dll, which presumably you can build, against the QtCoreVBox4.dll file shipped with VirtualBox. I assume you know how to choose between static and dynamic library builds in your IDE, you understand that VBox is expecting the libraries in DLL form at runtime, and that the lib is generated as a byproduct of building the DLL.
Perryg
Site Moderator
Posts: 34369
Joined: 6. Sep 2008, 22:55
Primary OS: Linux other
VBox Version: OSE self-compiled
Guest OSses: *NIX

Re: Building VBox OSE v5.0.0 on Win7 - missing QT

Post by Perryg »

To quote mhanor, if you are still seeing "C:/VBox/VirtualBox-5.0.0/tools/win.x86/qt/v4.7.3-vcc100': lib/" You are not passing the qt path as argument to the configure script
If you do not state the proper place where your build is in the script it will always fall back to the default and of course it will not find it.

I wouldn't worry much at this point about where the vbox files are as the build script should find them if it can find the actual qt binaries you have built.
Post Reply