PDA

View Full Version : poseDeformer & poseReader for Maya Linux 8.5/2008/2009 64bit


llikethat
04-21-2009, 11:31 AM
Hi,


I tried compiling the .so for poseDeformer and poseReader in my machine with gcc 4.1.2, CentOS 5.2, 64bit. I used a Makefile with multiple source files. I got the compiled .so's but while trying to load in Maya 2009 it gives me the following error.
// Error: Unable to dynamically load : /usr/autodesk/maya2009-x64/bin/plug-ins/poseReader.so
/usr/autodesk/maya2009-x64/bin/plug-ins/poseReader.so: undefined symbol: _ZN10poseReader10initializeEv //
// Error: /usr/autodesk/maya2009-x64/bin/plug-ins/poseReader.so: undefined symbol: _ZN10poseReader10initializeEv //
// Error: /usr/autodesk/maya2009-x64/bin/plug-ins/poseReader.so: undefined symbol: _ZN10poseReader10initializeEv (poseReader) //
// Error: Unable to dynamically load : /usr/autodesk/maya2009-x64/bin/plug-ins/poseDeformer.so
/usr/autodesk/maya2009-x64/bin/plug-ins/poseDeformer.so: undefined symbol: _ZN12poseDeformer10aPoseDeltaE //
// Error: /usr/autodesk/maya2009-x64/bin/plug-ins/poseDeformer.so: undefined symbol: _ZN12poseDeformer10aPoseDeltaE //
// Error: /usr/autodesk/maya2009-x64/bin/plug-ins/poseDeformer.so: undefined symbol: _ZN12poseDeformer10aPoseDeltaE (poseDeformer) //

The Makefile with multiple sources is as follows,

C++ = g++
MAYA_LOCATION = /usr/autodesk/maya2009-x64
CFLAGS = -g -D_BOOL -DLINUX -D_DEBUG -D_DRAW_STYLE_4 -O3 -pipe -DREQUIRE_IOSTREAM -ffast-math -fPIC
C++FLAGS = $(CFLAGS) $(WARNFLAGS)
INCLUDES = -I. -I.. -I$(MAYA_LOCATION)/include -I/usr/X11R6/include -I/usr/include
LD = $(C++) -shared $(NO_TRANS_LINK) $(C++FLAGS)
LIBS = -L$(MAYA_LOCATION)/lib -lOpenMaya

.SUFFIXES: .cpp .o .so


.cpp.o:
$(C++) -c $(INCLUDES) $(C++FLAGS) $<

.cc.i:
$(C++) -E $(INCLUDES) $(C++FLAGS) $*.cc > $*.i

.cc.so:
-rm -f $@
$(LD) -o $@ $(INCLUDES) $< $(LIBS)

.cpp.so:
-rm -f $@
$(LD) -o $@ $(INCLUDES) $< $(LIBS)

.o.so:
-rm -f $@
$(LD) -o $@ $< $(LIBS)


poseDeformer: poseDeformer.so

clean:
-rm -f *.o
Clean:
-rm -f *.o *.so *.bak


poseDeformer.so: plugin.o MatrixNN.o mirrorData.o poseDeformerEdit.o
-rm -f $@
$(LD) -o $@ plugin.o MatrixNN.o mirrorData.o poseDeformerEdit.o $(LIBS)
# DO NOT DELETE


It will be great if someone can help.

Thanks,

llikethat
04-22-2009, 12:02 PM
Hey,

Can someone tell me which are the libraries required for compiling poseDeformer. I'm confused if it is the version conflict of g++ or library linking.

Please help

RyanT
04-23-2009, 09:51 PM
I converted the pose reader part of the plugin to python so it works on any version of Maya on any platform on Maya 2008 and on.

http://www.rtrowbridge.com/blog/downloads/

llikethat
04-24-2009, 06:03 AM
Ryan,

Thanks for the information. Will check it out. As you mentioned the Deformer is a very interesting and complex part of the requirement in animation.

Thanks,

chrsaenz
04-28-2009, 10:46 PM
Hi,
I just compiled my .so of PoseDeformer and PoseReader for Maya 2008 x64 based on your post and they are working great, I'm also using gcc 4.1.2 so dont worry about your compiler version int his case, the problem is in your make file you are forgetting to source the main header file .

So at the end your make file would look somehow like this:

For the poseDeformer:


C++ = g++
MAYA_LOCATION = /usr/autodesk/maya
CFLAGS = -g -D_BOOL -DLINUX -D_DEBUG -D_DRAW_STYLE_4 -O3 -pipe -DREQUIRE_IOSTREAM -ffast-math -fPIC
C++FLAGS = $(CFLAGS) $(WARNFLAGS)
INCLUDES = -I. -I.. -I$(MAYA_LOCATION)/include -I/usr/X11R6/include -I/usr/include
LD = $(C++) -shared $(NO_TRANS_LINK) $(C++FLAGS)
LIBS = -L$(MAYA_LOCATION)/lib -lOpenMaya

.SUFFIXES: .cpp .o .so

.cpp.o:
$(C++) -c $(INCLUDES) $(C++FLAGS) %4$slt;

.cc.i:
$(C++) -E $(INCLUDES) $(C++FLAGS) $*.cc > $*.i

.cc.so:
-rm -f $@
$(LD) -o $@ $(INCLUDES) %4$slt; $(LIBS)

.cpp.so:
-rm -f $@
$(LD) -o $@ $(INCLUDES) %4$slt; $(LIBS)

.o.so:
-rm -f $@
$(LD) -o $@ %4$slt; $(LIBS)

poseDeformer: poseDeformer.so

clean:
-rm -f *.o

clean:
-rm -f *.o *.so *.bak

poseDeformer.so: plugin.o MatrixNN.o mirrorData.o poseDeformerEdit.o poseDeformer.o
-rm -f $@
$(LD) -o $@ plugin.o MatrixNN.o mirrorData.o poseDeformerEdit.o poseDeformer.o $(LIBS)
# DO NOT DELETE


And for the poseReader:


C++ = g++
MAYA_LOCATION = /usr/autodesk/maya
CFLAGS = -g -D_BOOL -DLINUX -D_DEBUG -D_DRAW_STYLE_4 -O3 -pipe -DREQUIRE_IOSTREAM -ffast-math -fPIC
C++FLAGS = $(CFLAGS) $(WARNFLAGS)
INCLUDES = -I. -I.. -I$(MAYA_LOCATION)/include -I/usr/X11R6/include -I/usr/include
LD = $(C++) -shared $(NO_TRANS_LINK) $(C++FLAGS)
LIBS = -L$(MAYA_LOCATION)/lib -lOpenMaya

.SUFFIXES: .cpp .o .so

.cpp.o:
$(C++) -c $(INCLUDES) $(C++FLAGS) %4$slt;

.cc.i:
$(C++) -E $(INCLUDES) $(C++FLAGS) $*.cc > $*.i

.cc.so:
-rm -f $@
$(LD) -o $@ $(INCLUDES) %4$slt; $(LIBS)

.cpp.so:
-rm -f $@
$(LD) -o $@ $(INCLUDES) %4$slt; $(LIBS)

.o.so:
-rm -f $@
$(LD) -o $@ %4$slt; $(LIBS)

poseReader: poseReader.so

clean:
-rm -f *.o

clean:
-rm -f *.o *.so *.bak

poseReader.so: plugin.o multiTrigger.o poseReader.o
-rm -f $@
$(LD) -o $@ plugin.o multiTrigger.o poseReader.o $(LIBS)
# DO NOT DELETE


It should also work for maya 2009, if you have several maya versions installed don't forget to specify on your makefile the MAYA_LOCATION.

Hope this solves your problem.

Cheers.

llikethat
04-29-2009, 02:21 PM
Hi,

OMG... what a silly thing to miss out. Thanks for pointing it out....

Good to know that it is working for you.. But when i tried again. The following are the errors i got, (i changed the MAYA_LOCATION)

g++: %4lt: No such file or directory
g++: no input files

So i changed the %4$slt; to $<

Then it did compile but when i tried loading it in Maya it gives me the following error,

// Error: Unable to dynamically load : /usr/autodesk/maya2008-x64/bin/plug-ins/poseDeformer.so
/usr/autodesk/maya2008-x64/bin/plug-ins/poseDeformer.so: undefined symbol: _ZNK15MPxDeformerNode4typeEv //
// Error: /usr/autodesk/maya2008-x64/bin/plug-ins/poseDeformer.so: undefined symbol: _ZNK15MPxDeformerNode4typeEv //
// Error: /usr/autodesk/maya2008-x64/bin/plug-ins/poseDeformer.so: undefined symbol: _ZNK15MPxDeformerNode4typeEv (poseDeformer) //


Please do tell me if i missing out on anything else.

Cheers,

chrsaenz
04-29-2009, 04:41 PM
I still have no idea from where did those %4$slt; appeared guess the html tag had something to do, sorry about that.

The make file is like this:


C++ = g++
MAYA_LOCATION = /usr/autodesk/maya/
CFLAGS = -g -D_BOOL -DLINUX -D_DEBUG -D_DRAW_STYLE_4 -O3 -pipe -DREQUIRE_IOSTREAM -ffast-math -fPIC
C++FLAGS = $(CFLAGS) $(WARNFLAGS)
INCLUDES = -I. -I.. -I$(MAYA_LOCATION)/include -I/usr/X11R6/include -I/usr/include
LD = $(C++) -shared $(NO_TRANS_LINK) $(C++FLAGS)
LIBS = -L$(MAYA_LOCATION)/lib -lOpenMaya

.SUFFIXES: .cpp .o .so

.cpp.o:
$(C++) -c $(INCLUDES) $(C++FLAGS) $<

.cc.i:
$(C++) -E $(INCLUDES) $(C++FLAGS) $*.cc > $*.i

.cc.so:
-rm -f $@
$(LD) -o $@ $(INCLUDES) $< $(LIBS)

.cpp.so:
-rm -f $@
$(LD) -o $@ $(INCLUDES) $< $(LIBS)

.o.so:
-rm -f $@
$(LD) -o $@ $< $(LIBS)

poseDeformer: poseDeformer.so

clean:
-rm -f *.o

clean:
-rm -f *.o *.so *.bak

poseDeformer.so: plugin.o MatrixNN.o mirrorData.o poseDeformerEdit.o poseDeformer.o
-rm -f $@
$(LD) -o $@ plugin.o MatrixNN.o mirrorData.o poseDeformerEdit.o poseDeformer.o $(LIBS)
# DO NOT DELETE


I noticed that your compiled .so files are now for maya 2008x64 is that the version you wan't to work with or is it maya 2009x64? Remeber that if you have several versions of maya installed you must specifiy which one you wan't the compiler to use in the MAYA_LOCATION Macro like you had in your 1st makefile.

I have the .so files for maya 2008x64 if you want them just tell me, I guess I can upload them in my webpage or something.

llikethat
05-04-2009, 01:05 PM
Hi,

Bad luck! I tried compiling it again. It's giving me the same error. It would be great if you can upload it.

P.S - Can you please also mention your OS, gcc version, build type. I'd like to try compiling again by creating a similar environment.

-Thanks!!!

chrsaenz
05-04-2009, 03:37 PM
You can find the Linux compiled poseDeformer for maya 2008 x64 in the following link:

http://www.depictedillusions.com/comet/

Well is hard to list all the dependencies that might be used by the gcc library but hope this helps.

I'm currently using Suse Linux Enterprise Desktop 10 SP2 x64
My kernel version is:
kernel-smp 2.6.16.60
For GCC:
gcc 4.1.2
gcc c++ 4.1.2
libgcc 4.1.2
glibc 2.4-31.61
glibc-devel 2.3-31.61
cpp 4.1.2
make 3.80-202.2

I've been using the plugin for a while and works great, hope this solves your problem...

llikethat
05-04-2009, 04:25 PM
Hi,

I downloaded the archive but the .so file is missing. Can you please check and resend the same. I would also require the poseReader.so.

Thanks.

chrsaenz
05-04-2009, 04:28 PM
Oops, sorry about tha please try again.

llikethat
05-05-2009, 12:54 PM
Hi,

Thanks a lot for the link. But i'm still not getting it to work on my machine. :sad: I'm still getting the same error which i'd posted in this thread.

CGTalk Moderation
05-05-2009, 12:54 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.