mingw, bjam and Boost.Python tutorial problem (ImportError)

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 imbaczek@jabber.gda.pl } { http://www.vlo.ids.gda.pl/ | imbaczek at poczta fm | http://www.promode.org } .. .. .. .. ... ... ...... evolve or face extinction ...... ... ... .. .. .. ..

""Marek \"Baczek\" Baczyński""
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
participants (2)
-
David Abrahams
-
Marek \"Baczek\" Baczyński