Hi,
I'm trying to learn to use SIP, and I've started out with a simple
Vector class. The sip file looks like this:

===========================================================================
%Module Vec3 0

class Vec3 {

%TypeHeaderCode
#include "Vec3.h"
%End

public:

        float x;
        float y;
        float z;        

        Vec3();
        Vec3(float xpos,float ypos,float zpos);
        float getX();
        float getY();
        float getZ();
        SIP_PYOBJECT __repr__() const;
%MethodCode
        sipRes = PyUnicode_FromFormat("Vec3(%f, %f, %f)", sipCpp->getX(),
sipCpp->getY(), sipCpp->getZ());
%End
};

==============================================================================

The __repr__ section is my frist attempt at implementing python
functions (operators next). I've used QPoint.h and QPoint.sip
as my starting point. The c++ code compiles ok , but when I try to
compile SIP with the following makefile,

I get the following error:

sipvec3Vec3.cpp
vec3.sip(26): error C3861: 'PyUnicode_FromFormat': identifier not found

Any suggestions? Thanks - jamie

============================================================================
TARGET = vec3.pyd
OFILES = sipvec3cmodule.obj sipvec3Vec3.obj
HFILES = sipAPImesh.h

CC = cl
CXX = cl
LINK = link
CPPFLAGS = -DNDEBUG -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -I. -I..
-Ic:\python25\include -Ic:\python25\sip
CFLAGS = -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3
CXXFLAGS = -nologo -Zm200 -Zc:wchar_t- -O2 -MD -W3 -w34100 -w34189
LFLAGS = /NOLOGO /DLL /MANIFEST /MANIFESTFILE:$(TARGET).manifest
/SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32'
name='Microsoft.Windows.Common-Controls' version='6.0.0.0'
publicKeyToken='6595b64144ccf1df' language='*'
processorArchitecture='*'" /INCREMENTAL:NO
LIBS = /LIBPATH:c:\python25\libs ..\lib\vec3.lib c:\python25\site_packages
.SUFFIXES: .c .cpp .cc .cxx .C


{.}.cpp{}.obj::
        $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
        $<
<<

{.}.cc{}.obj::
        $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
        $<
<<

{.}.cxx{}.obj::
        $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
        $<
<<

{.}.C{}.obj::
        $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -Fo @<<
        $<
<<

{.}.c{}.obj::
        $(CC) -c $(CFLAGS) $(CPPFLAGS) -Fo @<<
        $<
<<

all: $(TARGET)

$(OFILES): $(HFILES)

$(TARGET): $(OFILES)
        $(LINK) $(LFLAGS) /OUT:$(TARGET) @<<
          $(OFILES) $(LIBS)
<<
        mt -nologo -manifest $(TARGET).manifest -outputresource:$(TARGET);2

install: $(TARGET)
        @if not exist c:\python25\Lib\site-packages mkdir 
c:\python25\Lib\site-packages
        copy /y $(TARGET) c:\python25\Lib\site-packages\$(TARGET)

clean:
        -del $(TARGET)
        -del sipveccmodule.obj
        -del sipvecVec3.obj
        -del $(TARGET).manifest

===========================================================================
_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to