Of course! Silly mistake... thank you!, that worked perfectly...

On Tue, Jul 7, 2009 at 1:43 PM, William Ladwig<wlad...@wdtinc.com> wrote:
> You definitely want the name of the extension .so file to be cylucene.so, so 
> you will want to drop the 'lib' prefix.  Is your BOOST_PYTHON_MODULE 
> contained in a file named cylucene.cpp?  It looks like you are using a 
> cylucene.cpp file in the final step of your makefile, but it is not in your 
> list of "FILES" for your scons script, so I don't think it is ever getting 
> compiled and linked (that would be consistent with the error you are 
> getting).  If that's the case, you can probably just add it to the FILES list 
> and everything will come to life.
>
> Also, here is a link from the boost.python howto which has an example of 
> building with scons:
>
> http://wiki.python.org/moin/boost.python/BuildingExtensions
>
> Bill
>
>
> ________________________________________
> From: cplusplus-sig-bounces+wladwig=wdtinc....@python.org 
> [cplusplus-sig-bounces+wladwig=wdtinc....@python.org] On Behalf Of Nicolas 
> Lara [nicolasl...@gmail.com]
> Sent: Tuesday, July 07, 2009 7:54 AM
> To: Development of Python/C++ integration
> Subject: Re: [C++-sig] Building with Scons
>
> Thanks for the reply,
>
> Yes, I checked the name of the module. It matches the name of the
> generated file. I also tried changing the name to include "lib" (since
> scons also generates called libcylucene.so) but it doesnt work.
> My module looks like this:
>
> void init_util();
>
> BOOST_PYTHON_MODULE(cylucene)
> {
>   init_util();
> }
>
> On Tue, Jul 7, 2009 at 2:53 AM, William Ladwig<wlad...@wdtinc.com> wrote:
>> Does the name of the module defined in your BOOST_PYTHON_MODULE section 
>> match the name of the .so file (assuming you are using Linux)?  That's 
>> usually the error I get when I have a name mismatch.
>>
>> Also, I haven't really used scons, but shouldn't this:
>>
>> env.SharedLibrary(target='cylucene', source=FILES, SHLIBPREFIX='')
>>
>> be:
>>
>> env.SharedLibrary(target='cylucene', source=FILES, SHLIBPREFIX=''") ?
>>
>>
>> Bill
>>
>>
>> ________________________________________
>> From: cplusplus-sig-bounces+wladwig=wdtinc....@python.org 
>> [cplusplus-sig-bounces+wladwig=wdtinc....@python.org] On Behalf Of Nicolas 
>> Lara [nicolasl...@gmail.com]
>> Sent: Monday, July 06, 2009 6:25 PM
>> To: Development of Python/C++ integration
>> Subject: [C++-sig] Building with Scons
>>
>> Hello,
>>
>> I am trying to build a python extension with scons but the resulting
>> library cannot be loaded:
>>   ImportError: dynamic module does not define init function (initcylucene)
>>
>> I am using the following SConstruct file:
>>
>> FILES = ['typeconversion.cpp', 'document.cpp', 'search.cpp', 
>> 'queryparser.cpp',
>>         'analysis.cpp', 'index.cpp', 'store.cpp', 'util.cpp']
>> def python_tool(env):
>>    pybase = 'python%s' % sys.version[0:3]
>>    env.Append(CPPPATH=[os.path.join(sys.prefix, 'include', pybase)],
>>               LIBPATH=[os.path.join(sys.prefix, 'lib', pybase, 'config')],
>>               LIBS=['lib%s' % pybase])
>>    if env['PLATFORM'] not in ['cygwin', 'win32']:
>>        env.Append(LIBS=['util'])
>>
>> def boost_python_tool(env):
>>    env.Append(CPPDEFINES=['BOOST_PYTHON_DYNAMIC_LIB',
>>                           'BOOST_PYTHON_DYNAMIC_MODULE'],
>>               CPPPATH=['$boostIncludes'],  # boostIncludes is a PathOption
>>               LIBS=['boost_python'])
>>
>> def clucene_tool(env):
>>    env.Append(CPPPATH=['/usr/local/lib/CLucene/',
>>                        '/usr/local/lib/'],
>>               LIBS=['clucene'])
>>
>> import os
>> env = Environment(ENV=os.environ, tools=['default', python_tool,
>>                                         boost_python_tool, clucene_tool])
>> env.SharedLibrary(target='cylucene', source=FILES, SHLIBPREFIX='')
>>
>>
>> Previously I was using the following Makefile, which worked but was
>> statically linked:
>>
>> SHELL = /bin/bash
>> SRC = ./src/
>> BUILD = ./build/
>> INCLUDES = -I/usr/include/python2.6/ -I/usr/local/lib/ 
>> -I/usr/local/lib/CLucene/
>> LIBS = -lboost_python -lpython2.6 -lclucene
>> CFLAGS = -shared -fPIC -g -pedantic -Wall -Wextra
>> OBJECTS = document.o search.o queryparser.o analysis.o index.o store.o util.o
>> LOBJECTS = $(BUILD)typeconversion.o $(BUILD)document.o
>> $(BUILD)search.o $(BUILD)queryparser.o $(BUILD)analysis.o
>> $(BUILD)index.o $(BUILD)store.o $(BUILD)util.o
>>
>> all: cylucene
>>
>> cylucene: $(OBJECTS)
>>        mkdir -p $(BUILD) && cp $(SRC)initfile.py $(BUILD)__init__.py
>>        $(CC) $(SRC)cylucene.cpp $(LOBJECTS) $(INCLUDES) $(LIBS) $(CFLAGS) -o
>> $(BUILD)cylucene.so
>>
>> document.o: typeconversion.o
>>        mkdir -p $(BUILD)
>>        $(CC) $(SRC)document.cpp $(INCLUDES) $(LIBS) $(CFLAGS) -o 
>> $(BUILD)document.o
>>
>> queryparser.o: typeconversion.o
>>        mkdir -p $(BUILD)
>>        $(CC) $(SRC)queryparser.cpp $(INCLUDES) $(LIBS) $(CFLAGS) -o
>> $(BUILD)queryparser.o
>>
>> analysis.o:
>>        mkdir -p $(BUILD)
>>        $(CC) $(SRC)analysis.cpp $(INCLUDES) $(LIBS) $(CFLAGS) -o 
>> $(BUILD)analysis.o
>>
>> search.o:
>>        mkdir -p $(BUILD)
>>        $(CC) $(SRC)search.cpp $(INCLUDES) $(LIBS) $(CFLAGS) -o 
>> $(BUILD)search.o
>>
>> index.o:
>>        mkdir -p $(BUILD)
>>        $(CC) $(SRC)index.cpp $(INCLUDES) $(LIBS) $(CFLAGS) -o $(BUILD)index.o
>>
>> store.o:
>>        mkdir -p $(BUILD)
>>        $(CC) $(SRC)store.cpp $(INCLUDES) $(LIBS) $(CFLAGS) -o $(BUILD)store.o
>>
>> util.o:
>>        mkdir -p $(BUILD)
>>        $(CC) $(SRC)util.cpp $(INCLUDES) $(LIBS) $(CFLAGS) -o $(BUILD)util.o
>>
>> typeconversion.o:
>>        mkdir -p $(BUILD)
>>        $(CC) $(SRC)typeconversion.cpp $(CFLAGS) -o $(BUILD)typeconversion.o
>>
>> clean:
>>        rm -Rf build/
>>
>>
>> Does anyone have experience working with scons and boost::python? Can
>> anyone help?
>>
>> Thanks in advance!
>>
>>
>> --
>> Nicolas Lara
>> Linux user #380134
>> http://nicolas-lara.blogspot.com/
>> Public key id: 0x152e7713 at http://subkeys.pgp.net/
>> _______________________________________________
>> Cplusplus-sig mailing list
>> Cplusplus-sig@python.org
>> http://mail.python.org/mailman/listinfo/cplusplus-sig
>> _______________________________________________
>> Cplusplus-sig mailing list
>> Cplusplus-sig@python.org
>> http://mail.python.org/mailman/listinfo/cplusplus-sig
>>
>
>
>
> --
> Nicolas Lara
> Linux user #380134
> http://nicolas-lara.blogspot.com/
> Public key id: 0x152e7713 at http://subkeys.pgp.net/
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>



-- 
Nicolas Lara
Linux user #380134
http://nicolas-lara.blogspot.com/
Public key id: 0x152e7713 at http://subkeys.pgp.net/
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to