Boost logo

Boost Users :

Subject: Re: [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-28 23:10:45


Many thanks to all who responded, both on and off list. This is on 64 bit
WIndows 7 Pro.

I have finally mastered much of this (I think). I don't know if the
following script would be helpful to anyone, but I post it in case it will
be helpful to someone.

bootstrap
..\bjam.exe -j%NUMBER_OF_PROCESSORS% toolset=msvc-8.0 toolset=msvc-10.0
--build-type=complete --libdir=C:\Boost\lib\i386 install
..\bjam.exe -j%NUMBER_OF_PROCESSORS% toolset=msvc-8.0 toolset=msvc-10.0
--build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86
address-model=64 install
cd status
..\bjam.exe -j%NUMBER_OF_PROCESSORS% toolset=msvc-8.0 toolset=msvc-10.0
--build-type=complete --libdir=C:\Boost\lib\i386
..\bjam.exe -j%NUMBER_OF_PROCESSORS% toolset=msvc-8.0 toolset=msvc-10.0
--build-type=complete --libdir=C:\Boost\lib\x64 architecture=x86
address-model=64

Note, this builds everything for both versions of MSVC that I have, and
places the 32 bit libraries in C:\Boost\lib\i386 and the 64 bit versions in
C:\Boost\lib\x64.

...failed testing.capture-output
..\bin.v2\libs\filesystem\test\v3_operations_test.test\msvc-10.0\debug\addre
ss-model-64\architecture-x86\asynch-exceptions-on\threading-multi\v3_operati
ons_test.run...
...failed updating 121 targets...
...skipped 258 targets...
...updated 54807 targets...

Is this result expected or normal? If this is expected, then my next step
is to use this to build and test QuantLib 1.0.1 ...

Would the output from the tests be helpful to anyone? How would I modify
the ast two lines above so that the full output of the testing is stored in
a file, and to whom would I email it if it would be helpful to anyone? Or
should I just pipe it by adding "> output.file.dat"

One final note about the above 'scriptlet': The bootstrap script finished
in seconds, and the next two lines used no more than 30% of the CPU
resources. Only did the last two statements use 100% of the CPU resources
consistently. (This is a fast intel Core i7) This is the only time I have
placed enough of a computing burden on this machine to use more than 25% of
the CPU resources.

Now, the results for building all in cygwin are not so good. Within the
cygwin bash shell, I ran the following:

./bootstrap.sh
./bjam
cd status
../bjam

Now, that seemed to work, but I am not entirely convinced. Here is the last
bit of output:

C:\cygwin\home\Ted\boost_1_45_0\libs\filesystem\v3\src\unique_path.cpp:34:
warning: ignoring #pragma comment
gcc.compile.c++
../bin.v2/libs/filesystem/build/gcc-4.3.4/release/link-static/v3/src/windows
_file_codecvt.o
gcc.archive
../bin.v2/libs/filesystem/build/gcc-4.3.4/release/link-static/libboost_files
ystem.a
gcc.compile.c++
../bin.v2/libs/system/build/gcc-4.3.4/release/link-static/error_code.o
gcc.archive
../bin.v2/libs/system/build/gcc-4.3.4/release/link-static/libboost_system.a
gcc.link
../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-tes
t.exe
testing.capture-output
../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-tes
t.run
====== BEGIN OUTPUT ======

**** exception(205): std::runtime_error: The Boost path appears to have been
incorrectly set: could not find boost/version.hpp in /home/Ted/boost_1_45_0
******** errors detected; see standard output for details ********

EXIT STATUS: 200
====== END OUTPUT ======

    PATH="/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$PATH"
export PATH

 
"../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-te
st.exe" --boost=/home/Ted/boost_1_45_0 --list boost >
"../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-te
st.output" 2>&1
    status=$?
    echo >>
"../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-te
st.output"
    echo EXIT STATUS: $status >>
"../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-te
st.output"
    if test $status -eq 0 ; then
        cp
"../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-te
st.output"
"../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-te
st.run"
    fi
    verbose=0
    if test $status -ne 0 ; then
        verbose=1
    fi
    if test $verbose -eq 1 ; then
        echo ====== BEGIN OUTPUT ======
        cat
"../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-te
st.output"
        echo ====== END OUTPUT ======
    fi
    exit $status

...failed testing.capture-output
../bin.v2/tools/bcp/test/bcp-test.test/gcc-4.3.4/release/link-static/bcp-tes
t.run...
...failed updating 172 targets...
...skipped 381 targets...
...updated 24948 targets...

Take note of the line:

**** exception(205): std::runtime_error: The Boost path appears to have been
incorrectly set: could not find boost/version.hpp in /home/Ted/boost_1_45_0

That output is flat out wrong. I looked int hat directory and the header it
complains about is in fact there.

Should I be concerned about this, or be content that less than 1% of the
targets failed on cygwin?

Again, would the full output of these tests be helpful to anyone, and if so,
how do I modify my last command so that the output goes to a file. Or
should I just pipe it by adding "> output.file.dat." And to whom would I
send it.

Thanks again,

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