Boost logo

Boost Users :

Subject: [Boost-users] Problems compiling those libraries that are not header only on 64 bit Windows 7
From: Ted Byers (r.ted.byers_at_[hidden])
Date: 2011-01-26 18:00:05


I tried asking this yesterday, but received a message saying I had to
subscribe to this list first. I don't understand that reply as I had
already subscribed half an hour before I asked the question, and I have been
receiving email from the list ever since.

 

So, I am going to try again (with the query updated to reflect my latest
attempts).

============================================================================
====================

I am working on Windows 7 Pro, 64 bit.

 

I have two versions of MS VS: MS VS 2005 and MS VS 2010. I guess my first
question is, "Will library files produced by MS VS 2005 work with MS VS
2010?" I know that library files compiled by compilers from different
sources (gcc vs MSVC) won't work with each other (unless the library was
written in C or FORTRAN), but does the same apply to different versions fo
the same compiler? I have a long practice of passing my code through
different compilers when part of the requirement is to produce portable
code, since different compiler producers will have different strengths and
weaknesses; different understandings of applicable standards. But a limited
budget means I have to coerce them to live on the same hardware.

 

I used a prebuilt distribution of bjam for all my attempts to build the
boost libraries using msvc++. I did not compile it myself.

 

I also have Cygwin installed.

 

>From the C:\boost_1_45_0 directory, I tried the following to keep the builds
for the two versions separate (planning on changing the library directories
based on the build environment), but when both finished, both
C:\boost_1_45_0\lib\msvc2010\x64 and bjam
--build-dir=C:\boost_1_45_0\lib\msvc2010\x32 were empty and
C:\boost_1_45_0\stage\lib had 606 items.

 

bjam --build-dir=C:\boost_1_45_0\lib\msvc2010\x32 --build-type=complete

bjam --build-dir=C:\boost_1_45_0\lib\msvc2010\x64 --build-type=complete

 

And if I execute bjam in status, I get a result that says something like 30
out of 30K tests failed. (Is that normal?)

 

So, what do I do when trying to support both MSVC++ 2005 and MSVC++ 2010?

 

 

Here are the results from my latest attempt using cygwin.

 

$ ../boost-jam-3.1.18/bin.cygwinx86/bjam --layout=versioned
--build-type=complete

warning: No toolsets are configured.

warning: Configuring default toolset "gcc".

warning: If the default is wrong, your build may not work correctly.

warning: Use the "toolset=xxxxx" option to override our guess.

warning: For more configuration options, please consult

warning:
http://boost.org/boost-build2/doc/html/bbv2/advanced/configuration.html

 

Building the Boost C++ Libraries.

 

 

/home/Ted/boost_1_45_0/tools/build/v2/build/configure.jam:145: in builds-raw

*** argument error

* rule UPDATE_NOW ( targets * : log ? : ignore-minus-n ? )

* called with: ( <pbin.v2/libs/regex/build/gcc-4.3.4/debug>has_icu.exe : :
ignore-minus-n : ignore-minus-q )

* extra argument ignore-minus-q

(builtin):see definition of rule 'UPDATE_NOW' being called

/home/Ted/boost_1_45_0/tools/build/v2/build/configure.jam:179: in
configure.builds

/home/Ted/boost_1_45_0/tools/build/v2/build/configure.jam:216: in
object(check-target-builds-worker)@394.check

/home/Ted/boost_1_45_0/tools/build/v2/kernel/modules.jam:103: in
modules.call-in

/home/Ted/boost_1_45_0/tools/build/v2/util/indirect.jam:96: in indirect.call

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1012: in
targets.evaluate-requirements

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1393: in
basic-target.compute-usage-requirements

/home/Ted/boost_1_45_0/tools/build/v2/build/alias.jam:47: in
compute-usage-requirements

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1319: in
object(alias-target-class)@398.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:732: in
generate-really

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:704: in
object(main-target)@836.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:848: in
targets.generate-from-reference

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1217: in
generate-dependencies

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1268: in
object(typed-target)@401.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:732: in
generate-really

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:704: in
object(main-target)@837.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:848: in
targets.generate-from-reference

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1217: in
generate-dependencies

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1266: in
object(typed-target)@147.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:732: in
generate-really

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:704: in
object(main-target)@818.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:258: in
object(project-target)@129.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:848: in
targets.generate-from-reference

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1217: in
generate-dependencies

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1268: in
object(install-target-class)@63.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:732: in
generate-really

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:704: in
object(main-target)@629.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:848: in
targets.generate-from-reference

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1217: in
generate-dependencies

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1268: in
alias-target-class.generate

Jamroot:648: in build-multiple

Jamroot:634: in object(top-level-target)@72.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:732: in
generate-really

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:704: in
object(main-target)@633.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:848: in
targets.generate-from-reference

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1217: in
generate-dependencies

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:1268: in
alias-target-class.generate

Jamroot:648: in build-multiple

Jamroot:634: in object(top-level-target)@73.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:732: in
generate-really

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:704: in
object(main-target)@634.generate

/home/Ted/boost_1_45_0/tools/build/v2/build/targets.jam:258: in
object(project-target)@16.generate

/home/Ted/boost_1_45_0/tools/build/v2/build-system.jam:735: in load

/home/Ted/boost_1_45_0/tools/build/v2/kernel/modules.jam:283: in import

/home/Ted/boost_1_45_0/tools/build/v2/kernel/bootstrap.jam:142: in
boost-build

/home/Ted/boost_1_45_0/boost-build.jam:17: in module scope

 

And nothing was built.

 

So, what do I have to do to pursuade bjam to produce all of the library
files in cygwin?

 

Thanks

 

Ted



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net