Compiling-ICU-with-MSVC: Difference between revisions
AutoSpider (talk | contribs) (Add "cleanup" tag) |
AutoSpider (talk | contribs) (Convert ExpressionEngine links) |
||
Line 12: | Line 12: | ||
== Pre-built packages == | == Pre-built packages == | ||
The | The [http://site.icu-project.org/download ICU Project site] provides pre-built packages for MSVC 2010, which should work with compilers too. Anyhow, you have to compile your own version if you want to avoid the MSVC 2010 runtime dependency (because you're using another MSVC version), or want to tailor the ICU configuration. | ||
[http://download.qt.io/development_releases/prebuilt/icu/prebuilt download.qt.io] also hosts packages for MSVC 2010, 2012 and 2013. | |||
== Compiling on your own == | == Compiling on your own == | ||
Line 21: | Line 21: | ||
* MSVC toolchain | * MSVC toolchain | ||
* | * [http://www.cygwin.com/install.html Cygwin] | ||
Note: When installing Cygwin and selecting packages, make sure you search for and select 'make', 'dos2unix' and 'binutils'. | Note: When installing Cygwin and selecting packages, make sure you search for and select 'make', 'dos2unix' and 'binutils'. |
Revision as of 08:16, 4 March 2015
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
Compiling ICU with MSVC (Microsoft Visual Studio)
Qt 5 / QtWebkit requires ICU.
Pre-built packages
The ICU Project site provides pre-built packages for MSVC 2010, which should work with compilers too. Anyhow, you have to compile your own version if you want to avoid the MSVC 2010 runtime dependency (because you're using another MSVC version), or want to tailor the ICU configuration.
download.qt.io also hosts packages for MSVC 2010, 2012 and 2013.
Compiling on your own
Requirements
- MSVC toolchain
- Cygwin
Note: When installing Cygwin and selecting packages, make sure you search for and select 'make', 'dos2unix' and 'binutils'.
How to build
- Download latest ICU4C source code from http://site.icu-project.org/download (e.g.icu4c-54_1-src.zip), unzip.
- If you don't require the full ICU data library (i.e. you want to end up with a smaller icudt .dll for deployment), use the ICU data library customizer here: http://apps.icu-project.org/datacustom/ICUData53.html (select the version and options you need).
- Start cmd.exe and put Cygwin in PATH, convert line endings
C:> set PATH=PATH;C:C:> dos2unix *
C:> dos2unix -f configure
Check whether you have e.g. the MSVC compiler (cl.exe) in PATH. If not, set it up by calling e.g.
C:> "C:Files (x86)Visual Studio 10.0\VC\vcvarsall.bat" x86
Run configure && build:
C:> bash runConfigureICU Cygwin/MSVC —prefix=/cygdrive/c/icu/dist
This will generate a release shared build that you can use in both a debug and release build of Qt.
To link ICU statically (e.g. for a static release build of Qt), you have to append '—enable-static —disable-shared' :
C:> bash runConfigureICU Cygwin/MSVC —prefix=/cygdrive/c/icu/dist —enable-static —disable-shared
To link ICU statically and build it in debug mode (e.g. for a static debug build of Qt), you have to prepend '—enable-debug —disable-release' to the arguments:
C:> bash runConfigureICU —enable-debug —disable-release Cygwin/MSVC —prefix=/cygdrive/c/icu/dist —enable-static —disable-shared
Finally, run make && make install
C:> make && make install
Usage
Add the include, lib folders to your compilation environment, e.g. for cmd.exe :
C:> set PATH=PATH;C:C:> set INCLUDE=INCLUDE;C:C:> set LIB=LIB;C:
When you now run Qt’s configure.exe ICU should be detected, and Qt links against the libraries.