<DIV id=yiv140492737> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>Hi,</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>I am a complete newbie at boost, who must compile several Boost 1.33.1 Libraries on 64-bit MS Windows Vista, using MS VS2005. I downloaded the 64-bit version of Python (python-2.5.2.amd64.msi) as well as bjam (boost-jam-3.1.16-1-ntx86.zip) and Boost 1.33.1 (boost_1_33_1.zip); I then installed Python and extracted the other two files, placing bjam in the PATH.</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3></FONT> </DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>I tried various things to build the libraries. I finally got some (not all) of them to build, but I am still confused.</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3></FONT> </DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>I first changed boost_1_33_1\tools\build\v2\user-config.jam to include the following lines:</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3><STRONG>using msvc : 8.0 : "c:\program files (x86)\microsoft <SPAN class=yshortcuts id=lw_1214318984_0 style="CURSOR: hand; BORDER-BOTTOM: #0066cc 1px dashed">visual studio</SPAN> 8\vc\bin\amd64\cl.exe" ;</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3><STRONG>using python : 2.5 : "D:\chap\chears\devel\intersect\Libraries\pc\win64_vs80\python\Python2.5"</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3></FONT> </DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>I am using the following command (myBoostDir == d:\work\intersect\boost_1_33_1):</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><FONT face=Calibri size=3><STRONG>bjam ^</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><FONT face=Calibri size=3><STRONG> -sTOOLS=msvc ^</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><FONT face=Calibri size=3><STRONG> --prefix=%myBoostDir%\newboost ^</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><FONT face=Calibri size=3><STRONG> --builddir=%myBoostDir%\newboost ^</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><FONT face=Calibri size=3><STRONG> --debug-configuration ^</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><FONT face=Calibri size=3><STRONG> stage ^</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"><FONT face=Calibri size=3> <STRONG>> %myBoostDir%\logfile.txt 2>&1</STRONG></FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>However, that build tells me that it is using the configurations from the v1 directory, when I thought it is supposed to use the v2 directory?</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>notice: loading Boost.Build from D:/work/intersect/boost_1_33_1/tools/build/v1</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>The next thing I see is something about "spirit", which I did not see in the documentation. </FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>**** spirit 1.6x required to build library with this compiler ****</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>**** skipping build of <@boost!libs!serialization!build>libboost_serialization.lib; toolset= msvc variant= debug ****</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>And worst of all, it tries to use VC98 for the builds, which of course fails:</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>CALL "C:\Program Files (x86)\Microsoft Visual Studio\VC98\bin\VCVARS32.BAT" >nul</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3></FONT> </DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>I then tried copying user-config.jam to my boost_1_33_1 directory, but that did not help. Reading the documentation, I saw that if one sets MSVCDir, then the builds are supposed to bypass running msvcvars32.bat, so I did that and that's when I actually got something to build. It still uses the v1 configurations and issues the message about spirit. However, it does build most of the libraries. The python one gets the following build errors:</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>vc-C++ d:\work\intersect\boost_1_33_1\newboost\bin\boost\libs\python\build\boost_python.dll\msvc\debug\threading-multi\object_protocol.obj</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>object_protocol.cpp</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>D:\work\intersect\boost_1_33_1\libs\python\build\../src/object_protocol.cpp(110) : error C2664: '_PyEval_SliceIndex' : cannot convert parameter 2 from 'int *' to 'Py_ssize_t *'</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>D:\work\intersect\boost_1_33_1\libs\python\build\../src/object_protocol.cpp(112) : error C2664: '_PyEval_SliceIndex' : cannot convert parameter 2 from 'int *' to 'Py_ssize_t *'</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>D:\work\intersect\boost_1_33_1\libs\python\build\../src/object_protocol.cpp(137) : error C2664: '_PyEval_SliceIndex' : cannot convert parameter 2 from 'int *' to 'Py_ssize_t *'</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri>D:\work\intersect\boost_1_33_1\libs\python\build\../src/object_protocol.cpp(139) : error C2664: '_PyEval_SliceIndex' : cannot convert parameter 2 from 'int *' to 'Py_ssize_t *'</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT face=Calibri size=3> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>I also got the following error when building thread:</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>vc-Link d:\work\intersect\boost_1_33_1\newboost\bin\boost\libs\thread\build\boost_thread.dll\msvc\release\threading‑multi\boost_thread-vc6-mt-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3> Creating library d:\work\intersect\boost_1_33_1\newboost\bin\boost\libs\thread\build\boost_thread.dll\msvc\release\threading‑multi\boost_thread-vc6-mt-1_33_1.lib and object d:\work\intersect\boost_1_33_1\newboost\bin\boost\libs\thread\build\boost_thread.dll\msvc\release\threading-multi\boost_thread-vc6-mt-1_33_1.exp</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>once.obj : <SPAN class=yshortcuts id=lw_1214318984_1 style="CURSOR: hand; BORDER-BOTTOM: #0066cc 1px dashed">error LNK2019: unresolved external symbol</SPAN> _InterlockedCompareExchange referenced in function "long __cdecl `anonymous namespace'::compare_exchange(long * volatile,long,long)" (?compare_exchange@?A0x3441aea5@@YAJREAJJJ@Z)</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>d:\work\intersect\boost_1_33_1\newboost\bin\boost\libs\thread\build\boost_thread.dll\msvc\release\threading-multi\boost_thread-vc6-mt-1_33_1.dll : fatal error LNK1120: 1 unresolved externals</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3></FONT> </DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>It did build the following libraries, but it put "vc6" in their file names:</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_date_time-<B>vc6</B>-mt-gd-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_date_time-<B>vc6</B>-mt-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_filesystem-<B>vc6</B>-mt-gd-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_filesystem-<B>vc6</B>-mt-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_iostreams-<B>vc6</B>-mt-gd-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_iostreams-<B>vc6</B>-mt-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_program_options-<B>vc6</B>-mt-gd-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_program_options-<B>vc6</B>-mt-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_regex-<B>vc6</B>-mt-gd-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_regex-<B>vc6</B>-mt-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_signals-<B>vc6</B>-mt-gd-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>boost_signals-<B>vc6</B>-mt-1_33_1.dll</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3></FONT> </DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>For those unfamiliar with 64-bit MS Windows Vista, one runs the following BATCH program to initialize into the proper Visual Studio environment -- not ...\VC\bin\vcvars32.bat.</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><B><FONT size=3><FONT face=Calibri> "c:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcvarsall.bat" "platform"</FONT></FONT></B></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>Where "platform" can be x86 (32-bit), amd64 (or x64), ia64, x86_amd64 or x86_ia64. </FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3></FONT> </DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>At any rate, I would appreciate some pointers on how to build for the x64 platform given all of the above.</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3></FONT> </DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>Thanks,</FONT></DIV> <DIV class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>Bev</FONT></DIV></DIV><p>