VirtualBox

Changes between Version 57 and Version 58 of Windows build instructions


Ignore:
Timestamp:
Jun 9, 2017 1:47:23 PM (7 years ago)
Author:
Frank Mehnert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Windows build instructions

    v57 v58  
    4444 * the '''zlib''' library. Grab the sources from: [[BR]]
    4545 http://www.zlib.net/ [[BR]]
    46  Actually the tarball includes `zlib` in the `src\libs\` directory so downloading this library is only necessary if you need a more recent version. In that case look for `SDK_VBOX_ZLIB_INCS` and `SDK_VBOX_ZLIB_LIBS` in `Config.kmk` and override these entries in your `LocalConfig.kmk` accordingly. See [#LocalConfig below] for some notes about using `LocalConfig.kmk` to override the default build configuration).
     46 Actually the tarball includes `zlib` in the '`src\libs`' directory so downloading this library is only necessary if you need a more recent version. In that case look for `SDK_VBOX_ZLIB_INCS` and `SDK_VBOX_ZLIB_LIBS` in `Config.kmk` and override these entries in your `LocalConfig.kmk` accordingly. See [#LocalConfig below] for some notes about using `LocalConfig.kmk` to override the default build configuration).
    4747
    4848 * the '''cURL''' library. Grab the binaries from: [[BR]]
     
    7373
    7474=== Manual compilation of certain prerequisites ===
    75 If you don't find development packages of certain prerequisites it's also possible to manually compile them. For instance, there does not seem to be proper `libcurl` packages avaible for Windows which contain `libcurl.lib`, `libcurl.dll' files and the `include\` directory.
     75If you don't find development packages of certain prerequisites it's also possible to manually compile them. For instance, there does not seem to be proper `libcurl` packages avaible for Windows which contain `libcurl.lib`, `libcurl.dll' files and the '`include`' directory.
    7676
    7777To manually build the cURL devel package on Windows you have to
    78  1. Take care that the compiler binary path is part of the '''`PATH`''' environment variable, usually the `bin\` directory of the installation directory. That directory has to contain `cl.exe`, `link.exe`, `lib.exe`, `nmake.exe` etc. Take care to specify the correct architecture path (amd64 or x86).
    79  2. Set the '''`INCLUDE`''' environment variable to include the compilers `atlmfc\include\` (ATL/MFC) and `include\` directories.
    80  3. Set the '''`LIB`''' environment variable to include the compilers `atlmfc\lib\` (ATL/MFC) and `lib\` directories. Take care to specify the correct architecture path (amd64 or x86).
    81  4. Set the '''`LIBPATH`''' environment variable to include the compilers `atlmfc\lib\` (ATL/MFC) directory. Take care to specify the correct architecture path (amd64 or x86).
    82  5. Set the '''`PATH`''' environment variable to include the (7.1) SDK `bin\` directory. Take care to point to the correct architecture path (amd64 or x86).
    83  6. Set the '''`INCLUDE`''' environment variable to include the (7.1) SDK `include\` directory.
    84  7. Set the '''`LIB`''' environment variable to include the (7.1) SDK `lib\` directory. Take care to specify the correct architecture path (amd64 or x86).
    85 After all these environment variables are set up, go to the `curl-VERSION\winbuild\` directory and perform
     78 1. Take care that the compiler binary path is part of the '''`PATH`''' environment variable, usually the '`bin`' directory of the installation directory. That directory has to contain `cl.exe`, `link.exe`, `lib.exe`, `nmake.exe` etc. Take care to specify the correct architecture path (amd64 or x86).
     79 2. Set the '''`INCLUDE`''' environment variable to include the compilers '`atlmfc\include`' (ATL/MFC) and '`include`' directories.
     80 3. Set the '''`LIB`''' environment variable to include the compilers '`atlmfc\lib`' (ATL/MFC) and '`lib`' directories. Take care to specify the correct architecture path (amd64 or x86).
     81 4. Set the '''`LIBPATH`''' environment variable to include the compilers '`atlmfc\lib`' (ATL/MFC) directory. Take care to specify the correct architecture path (amd64 or x86).
     82 5. Set the '''`PATH`''' environment variable to include the (7.1) SDK '`bin`' directory. Take care to point to the correct architecture path (amd64 or x86).
     83 6. Set the '''`INCLUDE`''' environment variable to include the (7.1) SDK '`include`' directory.
     84 7. Set the '''`LIB`''' environment variable to include the (7.1) SDK '`lib`' directory. Take care to specify the correct architecture path (amd64 or x86).
     85After all these environment variables are set up, go to the '`curl-VERSION\winbuild`' directory and perform
    8686{{{
    8787nmake /f Makefile.vc mode=dll VC=10 MACHINE=x64 or
    8888nmake /f Makefile.vc mode=dll VC=10 MACHINE=x86
    8989}}}
    90 The resulting package can be found in the `builds\libcurl-vc10-*-winssl\` directory. The configure.vbs script expects that libcurl.lib and libcurl.dll are located next to the `include\` directory. It's a good idea to copy the `libcurl-vc10-*-winssl\` directory to another place. Then use the `--with-libcurl=` parameter to specify the path for configure.vbs.
     90The resulting package can be found in the '`builds\libcurl-vc10-*-winssl`' directory. The configure.vbs script expects that libcurl.lib and libcurl.dll are located next to the '`include`' directory. It's a good idea to copy the '`libcurl-vc10-*-winssl`' directory to another place. Then use the `--with-libcurl=` parameter to specify the path for configure.vbs.
    9191
    9292== Building !VirtualBox ==
     
    184184VBoxHeadless.exe
    185185}}}
     186
     187== Frequently Asked Questions ==
     188 I specified a prerequisite with `--with-xyz=PATH` but `configure.vbs` is unable to find it.::
     189  Look at the `configure.log` file. The directory layout might be unexpected. For example the `OpenSSL` package should contain two directories, the '`lib`' directory which contains `libssl.lib` and `libcrypto.lib` and the '`include`' directory.
     190
     191 Build stops immediately with ''!***You need to enable code signing for a hardened windows build to work''.::
     192  The message is clear: Code signing must work as Windows will only work with properly signed drivers. A temporary workaround for testing is to add '''`VBOX_WITHOUT_HARDENING=1`''' to your `LocalConfig.kmk`. Never use this setting for production environments!
     193
     194 Typing `kmk` raises a message box ''The application was unable to start correctly (0xc0000022). Click OK to close the application.''::
     195  Error code `0xc0000022` means `STATUS_ACCESS_DENIED`. Most likely the `kmk.exe` binary or a DLL (e.g. kBuild\bin\win.x86\msvcr100.dll or kBuild\bin\win.amd64\msvcr100.dll) have the execute bit unset. This happens if the .tar.bz2 archive is unpacked using Cygwin binaries. Solution: Set the execute bit on all `.exe` and `.dll` files in the source tree. Of course the same applies to all `.exe` and `.dll` files in the prerequisites directories!
     196
     197 How can I create the !VirtualBox.exe package similar to the one available on the official download page?::
     198  This is controlled by adding `VBOX_WITH_COMBINED_PACKAGE=1`. Such a package combines two `.msi` packages: The 32-bit version and the 64-bit version.

© 2023 Oracle
ContactPrivacy policyTerms of Use