[Boost-users] mingw, bjam and Boost.Python tutorial problem (ImportError)

23 views
Skip to first unread message

Marek \"Baczek\" Baczyński

unread,
Feb 19, 2006, 4:06:01 PM2/19/06
to boost...@lists.boost.org
Hi,

I have a problem with Boost.Python, mingw and bjam not working together, and
apparently it is jam that is the issue - or rather, it's rules. The root of the
problem seems to be that initmodule function doesn't get exported and I have
absolutely no idea what causes this (and even if I had, I propably wouldn't
know how to fix it, jam is pretty much dark magic for me :))

(Warning, lots of noise follows.)


Manual compilation (which, amazingly, works):

E:\boost_1_33_1\libs\python\example\tutorial>g++ hello.cpp -g -O0 -shared
-Ic:\boost\include\boost-1_33_1 -Ic:\python24\include
-Lc:\boost\lib -lpython24 -lboost_python-mgw-d -o hello.pyd

E:\boost_1_33_1\libs\python\example\tutorial>python
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import hello
>>> hello.greet()
'hello, world'
>>>

E:\boost_1_33_1\libs\python\example\tutorial>pexports hello.pyd
LIBRARY hello.pyd
EXPORTS
inithello


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

Compilation using bjam (lines have been wrapped in a text editor):

E:\boost_1_33_1\libs\python\example\tutorial>bjam -sTOOLS=mingw -d+2
gcc-C++-action bin\tutorial\hello.pyd\mingw\debug\hello.obj

"g++" -c -Wall -ftemplate-depth-255 -DBOOST_PYTHON_DYNAMIC_LIB -g -O0
-fno-inline -mno-cygwin -I"bin\tutorial" -I "E:\boost_1_33_1" -I
"c:\Python24\include" -o "bin\tutorial\hello.pyd\mingw\debug\hello.obj"
"hello.cpp"


gcc-Link-action bin\tutorial\hello.pyd\mingw\debug\hello.pyd
bin\tutorial\hello.pyd\mingw\debug\hello.lib

"g++" "-Wl,--enable-auto-image-base"
"-Wl,--exclude-symbols,_bss_end__:_bss _start__:_data_end__:_data_start__"
"-Wl,--out-implib,bin\tutorial\hello.pyd\min gw\debug\hello.lib" -g -shared
-Wl,--allow-multiple-definition -mno-cygwin -o
"bin\tutorial\hello.pyd\mingw\debug\hello.pyd"
-L"bin/boost/libs/python/build/boost_python.dll/mingw/debug" -L""
"bin\tutorial\hello.pyd\mingw\debug\hello.obj"
"c:\Python24\libs\libpython24.a"
"bin\boost\libs\python\build\boost_python.dll\mingw\debug\boost_python.lib"
"c:\Python24\libs\libpython24.a"
"bin\boost\libs\python\build\boost_python.dll\mingw\debug\boost_python.lib"
-lboost_python


E:\boost_1_33_1\libs\python\example\tutorial\bin\tutorial\hello.pyd\mingw\debug>python
Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import hello
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: dynamic module does not define init function (inithello)
>>>


E:\boost_1_33_1\libs\python\example\tutorial\bin\tutorial\hello.pyd\mingw\debug>pexports
hello.pyd
LIBRARY hello.pyd
EXPORTS


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

c:\gcc -v
Reading specs from c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/specs
Configured with: ../gcc-3.4.5/configure --with-gcc --with-gnu-ld --with-gnu-as
--host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls
--enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry
--disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt
--without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter
--enable-hash-synchronization --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.5 (mingw special)


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

Required dlls (boost_python.dll and -mgw-d) have been copied to their relevant
working dirs.

Please note that I'm a Boost newbie and that my first Boost
compilation finished just a few hours ago :) Also, tests from
python/test directory fail in a rather noisy way, and my guess is that
the reason is the same.

--
{ Marek Baczyñski :: UIN 57114871 :: GG 161671 :: JID imba...@jabber.gda.pl }
{ http://www.vlo.ids.gda.pl/ | imbaczek at poczta fm | http://www.promode.org }
.. .. .. .. ... ... ...... evolve or face extinction ...... ... ... .. .. .. ..

_______________________________________________
Boost-users mailing list
Boost...@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users

David Abrahams

unread,
Feb 20, 2006, 10:43:42 AM2/20/06
to boost...@lists.boost.org, Rene Rivera
""Marek \"Baczek\" Baczyński"" <imba...@gmail.com> writes:

> Hi,
>
> I have a problem with Boost.Python, mingw and bjam not working together, and
> apparently it is jam that is the issue - or rather, it's rules. The root of the
> problem seems to be that initmodule function doesn't get exported and I have
> absolutely no idea what causes this (and even if I had, I propably wouldn't
> know how to fix it, jam is pretty much dark magic for me :))
>
> (Warning, lots of noise follows.)

Huh, this used to work. Rene, can you look at this? I tried, but
can't figure out what's going on. It isn't even obvious what's wrong
with the command lines generated by bjam.

--
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Reply all
Reply to author
Forward
0 new messages