[osg-users] Curious compiler behavior

2013-12-12 Thread Lionel Lagarde
Hi, I use Visual Express C++ 2010. The following code works very well: osg::FloatArray *array = ... (*array)[i] = 10.0; I decided to add integer support: osg::IntArray *array = ... (*array)[i] = 10; And the linker says: osgd.lib(osg80-osgd.dll) : error LNK2005: "public: int & __cdecl osg::Mix

Re: [osg-users] Curious compiler behavior

2013-12-12 Thread Lionel Lagarde
It seems that osg80-osgd.dll contains the symbols of "scalar integer" (char, uchar, short, ushort, int, uint) specializations of the MixinVector. The vector and floating point specializations are not defined. On 12/12/2013 18:19, Lionel Lagarde wrote: Hi, I use Visual Express C++ 2010. The f

Re: [osg-users] Curious compiler behavior

2013-12-13 Thread Lionel Lagarde
My problem looks like the osgDB::fstream / std::fstream conflict which was resolved using the /FORCE:MULTIPLE linker flag. Does anyone has more information on this ? On 12/12/2013 18:39, Lionel Lagarde wrote: It seems that osg80-osgd.dll contains the symbols of "scalar integer" (char, uchar, sh

Re: [osg-users] Curious compiler behavior

2013-12-13 Thread Trajce Nikolov NICK
Hi Lionel, this topic was discussed before as I can recall and there was a neat solution (with #ifdefs) posted to avoid the conflict. Have a look in the archive, can not remember the author Nick On Fri, Dec 13, 2013 at 1:41 PM, Lionel Lagarde wrote: > My problem looks like the osgDB::fstream /

Re: [osg-users] Curious compiler behavior

2013-12-13 Thread Lionel Lagarde
Hi Nick, The solution involving the #ifdefs is to use the osgDB::fstream classes instead of the std ones using #defines: #ifdef WIN32 // Replace STL fstream with OSG fstream #include #define ifstream osgDB::ifstream #define ofstream osgDB::ofstream #else #include #define ifstream std::ifs

Re: [osg-users] Curious compiler behavior

2013-12-13 Thread Trajce Nikolov NICK
yes, that was what I saw earlier in one post. But good you made it work :-) Nick On Fri, Dec 13, 2013 at 3:00 PM, Lionel Lagarde wrote: > Hi Nick, > > The solution involving the #ifdefs is to use the osgDB::fstream classes > instead of the std ones using #defines: > > #ifdef WIN32 > > // Repla