[C++-sig] Problem building boost.python for Cygwin

Marc Paterno paterno at fnal.gov
Thu Feb 20 01:43:29 CET 2003


I have been attempting to build boost.python on Cygwin, and have
encountered trouble. I hope that someone may be able to diagnose my
problem.

I am using
 Windows 2000 SP3
 Cygwin v1.3.20-1
 GCC 3.2 20020927 (prerelease)
 python 2.2.2 (on Cygwin)
 bjam 3.1.3 for Cygwin


I am performing all builds from a Cygwin (bash) shell.

I have been able to build the thread, signals, and regex libraries, so
I am fairly sure that bjam and gcc are working properly. However, when
I attempt to build boost.python, the build fails.

Specifically, it seems that proper object files get built, in the
directory
  libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/
   runtime-link-dynamic/shared-linkable-true/

(I split the directory name over two lines for readability; the name is
not really split.)

However, it seems that building of the dynamic library fails. Here is the
output from running bjam a second time, after the .o files had been
successfully built.

----------
$> bjam -sTOOLS=gcc -sBUILD=release
...patience...
...found 903 targets...
...updating 2 targets...
gcc-Link-action
../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/ru
ntime-link-dynamic/shared-linkable-true/libboost_python.so
../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/ru
ntime-link-dynamic/shared-linkable-true/numeric.o(.text+x320):numeric.cpp:
undefined reference to `_PyExc_ImportError'
../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/ru
ntime-link-dynamic/shared-linkable-true/numeric.o(.text+x33d):numeric.cpp:
undefined reference to `_PyErr_Format'

 ... about 700 similar lines removed ...

../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/ru
ntime-link-dynamic/shared-linkable-true/object_operators.o(.text+x93f):objec
t_operators.cpp: undefined reference to `_PyNumber_InPlaceXor'
../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/ru
ntime-link-dynamic/shared-linkable-true/object_operators.o(.text+x9ff):objec
t_operators.cpp: undefined reference to `_PyNumber_InPlaceOr'
collect2: ld returned 1 exit status

    export LD_LIBRARY_PATH
    g++   -s -fPIC -shared  -o
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/libboost_python.so"  -L"/usr/lib/py
thon2.2/config"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/numeric.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/list.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/long.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/dict.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/tuple.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/str.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/aix_init_module.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/from_python.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/registry.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/type_id.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/enum.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/class.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/function.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/inheritance.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/life_support.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/pickle_support.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/errors.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/module.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/builtin_converters.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/arg_to_python_base.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/iterator.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/object_protocol.o"
"../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/r
untime-link-dynamic/shared-linkable-true/object_operators.o"

...failed gcc-Link-action
../../../libs/python/build/bin/libboost_python.so/gcc/release/inlining-on/ru
ntime-link-dynamic/shared-linkable-true/libboost_python.so...
...skipped <!libs!python!build!bin-stage>libboost_python.so for lack of
<libs!python!build/libboost_python.so/gcc/release/inlining-on/runtime-link-d
ynamic/shared-linkable-true>libboost_python.so...
...failed updating 1 target...
...skipped 1 target...

----------------------------------


Here are what I understand are the relevant environment variable
settings I have established:
   PYTHON_ROOT=/usr/lib/python2.2
   PYTHON_INCLUDES=/usr/include/python2.2
   PYTHON_LIB_PATH=/usr/lib/python2.2/config
   PYTHON_STDLIB_PATH=/usr/lib/python2.2
   PYTHON_VERSION=2.2

I am least sure about PYTHON_ROOT and PYTHON_LIB_PATH:
  PYTHON_ROOT is defined such that ${PYTHON_ROOT}/bin/python.exe is
     the full path to the Python executable;
  PYTHON_LIB_PATH is defined such that ${PYTHON_LIB_PATH}/libpython2.2.dll.a
     is the full path to the Python library supplied as a Cygwin 'package'.

I suspect I have one (or more) of these defined wrongly, but haven't been
able to find the right setting to make things go.

Suggestions would be most welcome.

best regards,
Marc





More information about the Cplusplus-sig mailing list