Building Boost 32/64 on Windows: Difference between revisions
Line 2: | Line 2: | ||
Boost x64 binaries are not available from boost or not exactly the right tool version perhaps | Boost x64 binaries are not available from boost or not exactly the right tool version perhaps | ||
=== Getting ICU's binary libraries === | |||
*Building boost x64 binaries requires icu x64 binaries which we have to make or get | *Building boost x64 binaries requires icu x64 binaries which we have to make or get | ||
*NB building icu "release only" can be done from the command line with sdk only | *NB building icu "release only" can be done from the command line with sdk only | ||
*Building icu debug version can be done from command line but requires a path to visual studio's bscmake (express will do) | *Building icu debug version can be done from command line but requires a path to visual studio's bscmake (express will do) | ||
[[Building ICU 32/64 on Windows]] or ready made: http://exodusdb.googlecode.com/files/icu461-vc100-x86x64-rd.zip | [[Building ICU 32/64 on Windows]] or ready made: http://exodusdb.googlecode.com/files/icu461-vc100-x86x64-rd.zip |
Revision as of 16:36, 15 May 2011
Building boost x64 "release only" in windows from command line using ready icu binaries
Boost x64 binaries are not available from boost or not exactly the right tool version perhaps
Getting ICU's binary libraries
- Building boost x64 binaries requires icu x64 binaries which we have to make or get
- NB building icu "release only" can be done from the command line with sdk only
- Building icu debug version can be done from command line but requires a path to visual studio's bscmake (express will do)
Building ICU 32/64 on Windows or ready made: http://exodusdb.googlecode.com/files/icu461-vc100-x86x64-rd.zip
Here we get "release only" binaries from icu at http://site.icu-project.org/download
http://download.icu-project.org/files/icu4c/4.6/icu4c-4_6-Win64-msvc10.zip
and extract to
F:\icu4c-4_6-Win64-msvc10
check they are at the right level
dir F:\icu4c-4_6-Win64-msvc10\icu
Define ICU Location
set ICU64=F:\icu4c-4_6-Win64-msvc10\icu rem set ICU64=F:\icu4c-4_6_1-src\icu dir %ICU64%
Get Boost Source
To unzip boost files fast get 7-Zip.
http://www.7-zip.org/download.html
Get boost source and open in 7-Zip's File Manager
http://sourceforge.net/projects/boost/files/boost/1.46.1/boost_1_46_1.7z/download
Extract to F:\ so that subfolder isnt doubled up as f:\exodus_1_46_1\exodus_1_46_1\
f:\boost_1_46_1
or just get boost zip but Windows unzips *extremely* slowly
http://sourceforge.net/projects/boost/files/boost/1.46.1/boost_1_46_1.zip/download
Build Boost Builder
Install Windows SDK and get into a SDK command line and get into boost
f: cd \boost_1_46_1
NOTE the boost builder "bjam" MUST be built in x86 mode!
setenv /x86 /Release bootstrap
Check if Boost builds with ICU
First build the regex library only to check that icu is being used
setenv /x64 /Release bjam variant=release --toolset=msvc-10.0 architecture=x86 address-model=64 -sICU_PATH=%ICU64% --with-regex stage --stagedir=stage64 -j2 -a
If it says HAS_ICU=NO then do the following work otherwise skip to final section and build all five boost binary libraries needed by Exodus
Work-around for "HAS_ICU BUILDS: NO"
bjam should not use the debug libraries while building regex so probably we can just use the release versions as debug to get around the icu detection!
cd icu\lib64 copy icuin.lib icuind.lib copy icuuc.lib icuucd.lib
If the work-around doesnt work!
A boost build bug that tests for existence of *debug* version of ICU even when building release only version of boost. config.log will show you all the attempted linking including bin/bin64 lib/lib64 issues. also includes list of libraries in a @file
notepad bin\v2\config.log notepad bin.v2\libs\regex\build\msvc-10.0\debug\address-model-64\architecture-x86\threading-multi\has_icu.exe.rsp
LINK : fatal error LNK1181: cannot open input file 'icuind.lib'
maybe your ICU_PATH IS WRONG
Build Boost with ICU
setenv /x64 /Release bjam variant=release --toolset=msvc-10.0 architecture=x86 address-model=64 -sICU_PATH=%ICU64% --with-date_time --with-filesystem --with-regex --with-system --with-thread stage --stagedir=stage64 -j2 -a dir stage64\lib
Building Boost 32/64/Debug/Release
If you have acquired or built a complete set of 32/64/release/debug libraries then you can build the same for boost and therefore can build Exodus in any configuration or platform.
set ICU32=icu4c-4_6_1-src set ICU64=icu4c-4_6_1-src setenv /x64 bjam --toolset=msvc-10.0 architecture=x86 address-model=64 -sICU_PATH=%ICU64% --with-date_time --with-filesystem --with-regex --with-system --with-thread stage --stagedir=stage64 -j2 -a dir stage64\lib setenv /x86 bjam --toolset=msvc-10.0 architecture=x86 address-model=64 -sICU_PATH=%ICU32% --with-date_time --with-filesystem --with-regex --with-system --with-thread stage --stagedir=stage32 -j2 -a dir stage32\lib