Re: [Boost-users] Boost.Filesystem with MSVC8 & STLPort linker errors

I have an application using Boost.Filesystem, Boost.Thread and others, that I am building on Windows XP using MSVC8, STLPort and Boost 1.39.0. I have built Boost using Boost Jam 3.1.17 and STLPort.
How exactly? What commands did you type, and what configuration files are you using? Did you use stdlib=stlport ?
For STLPORT I used: STLport-5.2.1>set include=...\STLport\STLport-5.2.1\stlport;%include% STLport-5.2.1>configure msvc8 -p winxp -x --without-thread STLport-5.2.1\build\lib>nmake clean install And then for Boost, edited boost_1_39_0\tools\build\v2\user-config.jam to # ------------------- # MSVC configuration. # ------------------- # Configure specific msvc version (searched for in standard locations and PATH). using msvc : 8.0 ; # ---------------------- # STLPort configuration. # ---------------------- using stlport : : ...\STLport\STLport-5.2.1\stlport ...\STLport\STLport-5.2.1\lib\vc8 ; and built with boost_1_39_0>set include=...\STLport\STLport-5.2.1\stlport;%include% boost_1_39_0> ..\bjam --toolset=msvc stdlib=stlport "stdlib:stlport-iostream=on" --with-filesystem --with-thread --with-date_time Regards -- Craig

Craig Henderson wrote:
I have an application using Boost.Filesystem, Boost.Thread and others, that I am building on Windows XP using MSVC8, STLPort and Boost 1.39.0. I have built Boost using Boost Jam 3.1.17 and STLPort.
How exactly? What commands did you type, and what configuration files are you using? Did you use stdlib=stlport ?
For STLPORT I used: STLport-5.2.1>set include=...\STLport\STLport-5.2.1\stlport;%include% STLport-5.2.1>configure msvc8 -p winxp -x --without-thread STLport-5.2.1\build\lib>nmake clean install
And then for Boost, edited boost_1_39_0\tools\build\v2\user-config.jam to # ------------------- # MSVC configuration. # ------------------- # Configure specific msvc version (searched for in standard locations and PATH). using msvc : 8.0 ; # ---------------------- # STLPort configuration. # ---------------------- using stlport : : ...\STLport\STLport-5.2.1\stlport ...\STLport\STLport-5.2.1\lib\vc8 ;
and built with boost_1_39_0>set include=...\STLport\STLport-5.2.1\stlport;%include% boost_1_39_0> ..\bjam --toolset=msvc stdlib=stlport "stdlib:stlport-iostream=on"
Hmm, I would have expected this last to be: stdlib-stlport:iostream=hostios
--with-filesystem --with-thread --with-date_time
Did you examine Boost.Filesystem DLL content as I have suggested? Does it have a symbol called 'boost::filesystem::detail::status_api'? Is the signature of that symbol, including parameter types the same as in the error message? If not, what are the difference? - Volodya

AMDG Craig Henderson wrote:
# ---------------------- # STLPort configuration. # ---------------------- using stlport : : ...\STLport\STLport-5.2.1\stlport ...\STLport\STLport-5.2.1\lib\vc8 ;
This won't work. First of all, you're missing a ':'. The syntax is using stlport : <version> : <headers> : <libraries> ; Second and more importantly, bjam treats \ as an escape character. Use forward slashes. Boost.Build should translate the paths to use backslashes when invoking the compiler. In Christ, Steven Watanabe

Steven Watanabe wrote:
bjam treats \ as an escape character. Use forward slashes. Boost.Build should translate the paths to use backslashes when invoking the compiler.
That's fixed it - thanks very much. It was the \'s in the configuration path. FWIW, my build fails with the extra colon: C:/root/Development/Library/Boost/boost_1_39_0/tools/build/v2/build\toolset. jam: 38: in toolset.using *** argument error * rule stlport.init ( version ? : headers libraries * ) * called with: ( : C:/root/Development/Library/STLport/STLport-5.2.1/stlport : C:/root/Development/Library/STLport/STLport-5.2.1/lib/vc8 : : : : : ) * extra argument C:/root/Development/Library/STLport/STLport-5.2.1/lib/vc8 C:/root/Development/Library/Boost/boost_1_39_0/tools/build/v2/tools\stlport. jam: 290:see definition of rule 'init' being called Thanks for you help -- Craig

AMDG Craig Henderson wrote:
Steven Watanabe wrote:
bjam treats \ as an escape character. Use forward slashes. Boost.Build should translate the paths to use backslashes when invoking the compiler.
That's fixed it - thanks very much. It was the \'s in the configuration path.
FWIW, my build fails with the extra colon: C:/root/Development/Library/Boost/boost_1_39_0/tools/build/v2/build\toolset. jam: 38: in toolset.using *** argument error * rule stlport.init ( version ? : headers libraries * ) * called with: ( : C:/root/Development/Library/STLport/STLport-5.2.1/stlport : C:/root/Development/Library/STLport/STLport-5.2.1/lib/vc8 : : : : : ) * extra argument C:/root/Development/Library/STLport/STLport-5.2.1/lib/vc8 C:/root/Development/Library/Boost/boost_1_39_0/tools/build/v2/tools\stlport. jam: 290:see definition of rule 'init' being called
I see. This is a bug in the stlport toolset. The code has been fixed, so your user-config.jam will probably break in 1.40. In Christ, Steven Watanabe
participants (3)
-
Craig Henderson
-
Steven Watanabe
-
Vladimir Prus