Never mind, those single quotes looked like one double quote on my screen....
________________________________________ From: cplusplus-sig-bounces+wladwig=wdtinc....@python.org [cplusplus-sig-bounces+wladwig=wdtinc....@python.org] On Behalf Of William Ladwig [wlad...@wdtinc.com] Sent: Monday, July 06, 2009 9:53 PM To: Development of Python/C++ integration Subject: Re: [C++-sig] Building with Scons 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 _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig