From: Patrick H. <pa...@vr...> - 2002-04-20 17:50:55
|
Patrick Hartling wrote: > I have had to make some changes to GMTL to get Gadgeteer compiling with > VC7. I don't think they are too nasty, but I thought they should be > reviewed before being committed. The first attached file contains the > diffs made against the latest GMTL. > > Even with those changes, I have run into some other problems compiling > code that uses GMTL. The second attached file contains a diff I made > against a Gadgeteer file (gadget/Devices/Sim/SimPosition.cpp and > gadget/Type/Glove.cpp). The compiler couldn't determine the second > template parameter to gmtl::makeTrans<gmtl::Matrix44f>(), so I added it > in manually. I'm not sure if this is the best solution, but the code > does compile. Does anyone have a better suggestion? > > Finally, I've run into a problem I haven't figured out how to fix. > Again compiling Gadgeteer, VC7 generates a bunch of problems regarding > the use of gmtl::xform in gadget/Type/Glove.cpp. The error output is > the third attachment. I have no idea how to fix this, but once that > file compiles, all of Gadgeteer will compile on Win32. :) > > -Patrick [snip] BTW, in case the actual error is lost in the output below, it's on line 166 of Xforms.h. I'm wondering if maybe I didn't screw something up in making changes to the gmtl::makeTrans<gmtl::Matrix44f>() calls in Glove.cpp. > msvccc -DHAVE_CONFIG_H -D_GADGET_BUILD_ -ID:/VR/juggler/cygwin/cygwin/home/Administrator/patrick/juggler/build.win32/modules/gadgeteer -I/home/Administrator/patrick/juggler/build.win32/..//modules/gadgeteer /nologo /nologo /W3 /GR /GX /EHc /QIfdiv /QI0f -ID:/VR/Juggler/cygwin/cygwin/home/administrator/patrick/nspr-4.2/include/nspr -ID:/VR/juggler/cygwin/cygwin/home/Administrator/patrick/juggler/build.win32/instlinks/include -ID:/VR/juggler/cygwin/cygwin/home/administrator/patrick/xerces-c1_5_1-win32/include -ID:/VR/juggler/cygwin/cygwin/home/Administrator/patrick/juggler/build.win32/instlinks/include -ID:/VR/Juggler/cygwin/cygwin/home/administrator/patrick/juggler/modules/GMTL /W3 /GR /GX /EHc /QIfdiv /QI0f -D_DEBUG /Od /GZ /Z7 /MDd -DPIC /c /FoD:/VR/juggler/cygwin/cygwin/home/Administrator/patrick/juggler/build.win32/modules/gadgeteer/obj/WinNT/WIN32//debug/gadget/Glove.obj /home/Administrator/patrick/juggler/build.win32/..//modules/gadgeteer/gadget/Type/Glove.cpp [snip] Here's the error output: > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(166) : error C2667: 'gmtl::xform' : none of 5 overloads have a best conversion > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(243): could be 'gmtl::Point<DATA_TYPE,> &gmtl::xform(gmtl::Point<DATA_TYPE,> &,const gmtl::Matrix<DATA_TYPE,,> &,const gmtl::Point<DATA_TYPE,> &)' > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(207): or 'gmtl::Point<DATA_TYPE,> &gmtl::xform(gmtl::Point<DATA_TYPE,> &,const gmtl::Matrix<DATA_TYPE,,> &,const gmtl::Point<DATA_TYPE,> &)' > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(154): or 'gmtl::Vec<DATA_TYPE,> &gmtl::xform(gmtl::Vec<DATA_TYPE,> &,const gmtl::Matrix<DATA_TYPE,,> &,const gmtl::Vec<DATA_TYPE,> &)' > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(115): or 'gmtl::Vec<DATA_TYPE,> &gmtl::xform(gmtl::Vec<DATA_TYPE,> &,const gmtl::Matrix<DATA_TYPE,,> &,const gmtl::Vec<DATA_TYPE,> &)' > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(68): or 'gmtl::Vec<DATA_TYPE,3> &gmtl::xform(gmtl::Vec<DATA_TYPE,3> &,const gmtl::Quat<DATA_TYPE> &,const gmtl::Vec<DATA_TYPE,3> &)' > while trying to match the argument list '(gmtl::Point<DATA_TYPE,SIZE>, const gmtl::Matrix<DATA_TYPE,ROWS,COLS>, gmtl::Point<DATA_TYPE,SIZE>)' > with > [ > DATA_TYPE=float, > SIZE=4 > ] > and > [ > DATA_TYPE=float, > ROWS=4, > COLS=4 > ] > and > [ > DATA_TYPE=float, > SIZE=4 > ] > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(195) : see reference to function template instantiation 'gmtl::Vec<DATA_TYPE,SIZE> &gmtl::xform(gmtl::Vec<DATA_TYPE,SIZE> &,const gmtl::Matrix<DATA_TYPE,ROWS,COLS> &,const gmtl::Vec<DATA_TYPE,SIZE> &)' being compiled > with > [ > DATA_TYPE=float, > SIZE=3, > ROWS=4, > COLS=4 > ] > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\gadgeteer\gadget\Type\Glove.cpp(225) : see reference to function template instantiation 'gmtl::Vec<DATA_TYPE,SIZE> gmtl::operator *(const gmtl::Matrix<DATA_TYPE,ROWS,COLS> &,const gmtl::Vec<DATA_TYPE,SIZE> &)' being compiled > with > [ > DATA_TYPE=float, > SIZE=3, > ROWS=4, > COLS=4 > ] > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(166) : error C2668: 'gmtl::xform' : ambiguous call to overloaded function > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(243): could be 'gmtl::Point<DATA_TYPE,> &gmtl::xform(gmtl::Point<DATA_TYPE,> &,const gmtl::Matrix<DATA_TYPE,,> &,const gmtl::Point<DATA_TYPE,> &)' > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(207): or 'gmtl::Point<DATA_TYPE,> &gmtl::xform(gmtl::Point<DATA_TYPE,> &,const gmtl::Matrix<DATA_TYPE,,> &,const gmtl::Point<DATA_TYPE,> &)' > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(154): or 'gmtl::Vec<DATA_TYPE,> &gmtl::xform(gmtl::Vec<DATA_TYPE,> &,const gmtl::Matrix<DATA_TYPE,,> &,const gmtl::Vec<DATA_TYPE,> &)' > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(115): or 'gmtl::Vec<DATA_TYPE,> &gmtl::xform(gmtl::Vec<DATA_TYPE,> &,const gmtl::Matrix<DATA_TYPE,,> &,const gmtl::Vec<DATA_TYPE,> &)' > D:\VR\juggler\cygwin\cygwin\home\administrator\patrick\juggler\modules\GMTL\gmtl\Xforms.h(68): or 'gmtl::Vec<DATA_TYPE,3> &gmtl::xform(gmtl::Vec<DATA_TYPE,3> &,const gmtl::Quat<DATA_TYPE> &,const gmtl::Vec<DATA_TYPE,3> &)' > while trying to match the argument list '(gmtl::Point<DATA_TYPE,SIZE>, const gmtl::Matrix<DATA_TYPE,ROWS,COLS>, gmtl::Point<DATA_TYPE,SIZE>)' > with > [ > DATA_TYPE=float, > SIZE=4 > ] > and > [ > DATA_TYPE=float, > ROWS=4, > COLS=4 > ] > and > [ > DATA_TYPE=float, > SIZE=4 > ] > make[8]: *** [D:/VR/juggler/cygwin/cygwin/home/Administrator/patrick/juggler/build.win32/modules/gadgeteer/obj/WinNT/WIN32//debug/gadget/Glove.obj] Error 2 > make[7]: *** [dbg] Error 2 > make[6]: *** [Type] Error 2 > make[5]: *** [dbg] Error 2 > make[4]: *** [gadget] Error 2 > make[3]: *** [obj.dbg.build] Error 2 > make[2]: *** [debug] Error 2 > make[1]: *** [recursive] Error 1 > make: *** [debug] Error 2 -- Patrick L. Hartling | Research Assistant, VRAC pa...@vr... | 2624 Howe Hall -- (515)294-4916 http://www.137.org/patrick/ | http://www.vrac.iastate.edu/ |