I think everything Mario and I have were built with the same GNU compilers (unless the OSG make script is somehow forcing different compilers for different DLLs).
I imagine everything has to be linked with the same C runtime library, too, so that'll be something to check as I investigate this further. Thanks to all for the feedback on this topic. Are most people relatively happy with mingw, or is there significant demand for OSG in Cygwin? I assume that OSG once built and ran with Cygwin, since I see so much Cygwin-specific stuff in the build environment...? -Paul > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Gordon Tomlinson > Sent: Saturday, September 02, 2006 7:02 AM > To: osg users > Subject: Re: [osg-users] Cygwin build questions: ESRIShape > plugin and Producer > > HI > > Something to be aware of when passing around std::strings in > libs or dll's is that in VC6/7/8 Microsoft in there wisdom > changed them quite drastically especially in VC8 > > one of the main reasons you should never Mix dll's or libs > built using a different compiler is among other major reason > is that the strings are INCOMPATIBLE between versions and > lead to the types of annoying crashes > > Also not the size of the buffer you mention as 16 which is an > optimization feature for short length strings, the length of > this buffer is not constant over versions as well a internal > layout etc of the std::string classes > > So the first thing you need to ensure if you have issues with > std::string is that ALL the Dll's and Libs you are using are > ALL built using the SAME version and build types > > Best Regards > > > > > > Gordon > > __________________________________________________________ > > Gordon Tomlinson > Email : [EMAIL PROTECTED] > YIM/AIM : Gordon3dBrit > MSN IM : [EMAIL PROTECTED] > Website : www.3dscenegraph.com > __________________________________________________________ > > > > I am a niaive and new user of STL so apologise if this is > known by all. > > > > I had problems with a DLL I created returning std::string, > and found > > that they generally had to be passed as const to fix the problem. I > > have found no specification anywhere that const strings have to be > > used - but I have to admit it may simply be an error in my coding. > > > > Digging into MS's library the std:string has a small buffer > (16 chars) > > and only when a larger string was passed / used / read was there a > > problem due to the allocation of new space. The result was > a crash due > > to trying to delete a bad memory ref. > > > > Alan > > > > Paul Martz wrote: > > > >>This seems to be a problem with passing copies of a std::string > >>between DLLs. getApplicationName() creates a std::string > from argv[0] > >>and returns a copy on the stack; the crash occurs at that time. > >> > >>I modified osgviewer to not use ArgumentParser at all, and > instead to > >>simply call readNodeFile( std::string( "cow.osg" )). I get the same > >>kind of crash, and this time it occurs when the std::string > >>constructor returns. > >> > >>I wonder if it's something as simple as a missing compiler > option that > >>would resolve this issue. > >> -Paul > >> > >> > >> > >> > >>>-----Original Message----- > >>>From: [EMAIL PROTECTED] > >>>[mailto:[EMAIL PROTECTED] On Behalf Of Mario > >>>Valle > >>>Sent: Wednesday, August 30, 2006 10:10 AM > >>>To: osg users > >>>Subject: Re: [osg-users] Cygwin build questions: ESRIShape > plugin and > >>>Producer > >>> > >>>Yes, > >>>but seems a memory corruption because no useful backtrace can be > >>>obtained. > >>>Using osgviewer dies in the > >>>arguments.getApplicationUsage()->setApplicationName(arguments. > >>> > >>> > >>getApplicationName()); > >> > >> > >>>line. Maybe is something related to having only Visual Studio > >>>6 on this machine (I cannot upgrade till I'm sure another > application > >>>still compile and runs without problems). > >>>Anyway, I was so frustrated that I give up. > >>>Now I'm trying to find a machine on which I can install > Visual Studio > >>>Express. And so return under Ma'a Microsoft. > >>>What's a pity. > >>>Thanks for your sympathy! > >>> mario > >>> > >>> > >>>Paul Martz wrote: > >>> > >>> > >>>>Thanks for the thorough notes. I'll try to get some time to > >>>> > >>>> > >>>continue > >>> > >>> > >>>>working on this, hopefully this week. > >>>> > >>>>It'd be nice to get to the bottom of why the binaries don't > >>>> > >>>> > >>>render for you. > >>> > >>> > >>>>Have you tried building debug and watching what happens under gdb? > >>>> -Paul > >>>> > >>>> > >>>> > >>>> > >>>>>-----Original Message----- > >>>>>From: [EMAIL PROTECTED] > >>>>>[mailto:[EMAIL PROTECTED] On Behalf Of Mario > >>>>>Valle > >>>>>Sent: Tuesday, August 29, 2006 8:59 PM > >>>>>To: osg users > >>>>>Subject: Re: [osg-users] Cygwin build questions: ESRIShape > >>>>> > >>>>> > >>>plugin and > >>> > >>> > >>>>>Producer > >>>>> > >>>>>Paul Martz wrote: > >>>>> > >>>>> > >>>>>>I've used Cygwin in the past for a few projects, and am now > >>>>>> > >>>>>> > >>>>>trying to > >>>>> > >>>>> > >>>>>>use it to build current OSG/OT/P CVS source. > >>>>>> > >>>>>>OT and P build fine. When I go to build OSG, it fails > to find the > >>>>>>Producer include files while building osgProducer. I found > >>>>>> > >>>>>> > >>>>>that I have > >>>>> > >>>>> > >>>>>>to explicitly export PRODUCER_INC_DIR and > >>>>>> > >>>>>> > >>>PRODUCER_LIB_DIR in order > >>> > >>> > >>>>>>for the OSG build to find the Producer header and include > >>>>>> > >>>>>> > >>>files. Is > >>> > >>> > >>>>>>this to be expected? (The Producer 'make install' puts > things in > >>>>>>/usr/local/Producer/include and > >>>>>>/usr/local/Producer/lib.) > >>>>>> > >>>>>>Once that issue was resolved, core OSG and some of the > >>>>>> > >>>>>> > >>>>>plugins built. > >>>>> > >>>>> > >>>>>>However, the build failed in the ESRIShape plugin, failing > >>>>>> > >>>>>> > >>>>>to compile > >>>>> > >>>>> > >>>>>>ESRIShape.cpp at line 38 because ::read was not defined. > >>>>>> > >>>>>>Any help would be appreciated. > >>>>>> -Paul > >>>>>> > >>>>>>_______________________________________________ > >>>>>>osg-users mailing list > >>>>>>[email protected] > >>>>>>http://openscenegraph.net/mailman/listinfo/osg-users > >>>>>>http://www.openscenegraph.org/ > >>>>>> > >>>>>> > >>>>>> > >>>>>Here are some sparse notes on building OSG under Cygwin. > >>>>> > >>>>> > >>>It builds, > >>> > >>> > >>>>>but fail at runtime and I do not understand why. Also the > >>>>> > >>>>> > >>>OT example > >>> > >>> > >>>>>WorkCrew has problems at runtime. > >>>>> > >>>>>For your question, see point 5. > >>>>>Hope you have more luck than me with Cygwn build. > >>>>>Ciao! > >>>>> mario > >>>>> > >>>>>1) install the following packages (the full installer ones) under > >>>>>d:/gnuwin32 > >>>>> > >>>>> freetype 2.1.10 > >>>>> jpeg 6b-4 > >>>>> libpng 1.2.8 > >>>>> libungif 4.1.4 > >>>>> tiff 3.8.2-1 > >>>>> > >>>>> > >>>>>2) create the build file d:/buildosg.sh as below > >>>>> > >>>>>export OSG_ROOT=/cygdrive/d/OSG_OP_OT-1.1.1-rc1 > >>>>>export BSD_ROOT=/cygdrive/d/gnuwin32 > >>>>> > >>>>>export OPENTHREADS_INC_DIR=$OSG_ROOT/OpenThreads/include > >>>>>export OPENTHREADS_LIB_DIR=$OSG_ROOT/OpenThreads/lib/CYGWIN32 > >>>>>export PRODUCER_INC_DIR=$OSG_ROOT/Producer/include > >>>>>export PRODUCER_LIB_DIR=$OSG_ROOT/Producer/lib/CYGWIN32 > >>>>>export COMPILE_EXAMPLES=yes > >>>>>export COMPILE_INTROSPECTION=no > >>>>> > >>>>>export FREETYPE_INCLUDE=$BSD_ROOT/freetype/include > >>>>>export FREETYPE_LIB=$BSD_ROOT/freetype/lib > >>>>>export PATH=${PATH}:$BSD_ROOT/freetype/bin > >>>>> > >>>>>export JPEG_INCLUDE=-I$BSD_ROOT/jpeg/include > >>>>>export JPEG_LIB="-L$BSD_ROOT/jpeg/lib -ljpeg" > >>>>> > >>>>>export GIF_INCLUDE=-I$BSD_ROOT/libungif/include > >>>>>export GIF_LIB=$BSD_ROOT/libungif/lib > >>>>> > >>>>>export TIFF_INCLUDE=-I$BSD_ROOT/tiff/include > >>>>>export TIFF_LIBS=$BSD_ROOT/tiff/lib > >>>>> > >>>>>export PNG_INCLUDE=-I$BSD_ROOT/libpng/include > >>>>>export PNG_LIB=$BSD_ROOT/libpng/lib > >>>>> > >>>>>export OSG_INC_DIR=$OSG_ROOT/OpenSceneGraph/include > >>>>>export OSG_LIB_DIR=$OSG_ROOT/OpenSceneGraph/lib/CYGWIN32 > >>>>> > >>>>>make $* > >>>>> > >>>>> > >>>>>3) build OpenThreads > >>>>> > >>>>> Seems you need to copy uname.exe from cygwin into this > >>>>> > >>>>> > >>>directory > >>> > >>> > >>>>>to have > >>>>> $(OS) correctly initialized. > >>>>> > >>>>> in pthreads_src/GNUMakefile > >>>>> remove the unneeded line 31: LIBS += -lpthread > >>>>> > >>>>> cd OpenThreads > >>>>> make > >>>>> > >>>>> > >>>>>4) build Producer > >>>>> > >>>>> cd ../Producer > >>>>> d:/buildosg.sh > >>>>> > >>>>> > >>>>>5) Edited > >>>>>$OSG_ROOT\OpenSceneGraph\src\osgPlugins\ESRIShape\ESRIShape.cpp > >>>>> > >>>>>#if defined(_MSC_VER) || defined(__MINGW32__) || defined(WIN32) > >>>>> #include <io.h> > >>>>> extern "C" int read(int, void *, unsigned int); #endif > >>>>> > >>>>> > >>>>>6) Under the installed freetype > >>>>> edit bin/freetype-config > >>>>> > >>>>>verify that line 12 read as the following (no D:/gnuwin32.... > >>>>>it confound dependency tracking) > >>>>> > >>>>> > >>>prefix=/cygdrive/d/gnuwin32/freetype > >>> > >>> > >>>>>around line 144 edit the line to read > >>>>> libs="-L$libdir -lfreetype -lz -Wl,-s -liberty -lintl -liconv > >>>>>-lwsock32 -lole32 -luuid -lmsvcp60 " > >>>>> > >>>>> > >>>>>4) For the jpeg plugin > >>>>>edit $OSG_ROOT\OpenSceneGraph\src\osgPlugins\jpeg\GNUMakefile > >>>>>and change > >>>>>JPEG_LIBS to JPEG_LIB > >>>>>(the former for some reason is not overriden by the script > >>>>>definition) > >>>>> > >>>>> > >>>>>5) For the gif plugin > >>>>>edit GNUmakefile > >>>>> > >>>>>ifeq ($(OS),HP-UX) > >>>>>INC += $(GIF_INCLUDE) > >>>>>else > >>>>>INC += $(GIF_INCLUDE) > >>>>> > >>>>>LINKARGS += -L$(GIF_LIB) > >>>>>endif > >>>>> > >>>>> > >>>>>6) For the tiff plugin > >>>>>edit GNUMakefile > >>>>>ifeq ($(OS),HP-UX) > >>>>>INC += $(TIFF_INCLUDE) > >>>>>else > >>>>>INC += $(TIFF_INCLUDE) > >>>>>#LDFLAGS += -L$(TIFF_LIBS) > >>>>>LINKARGS += -L$(TIFF_LIBS) $(JPEG_LIB) > >>>>> > >>>>>endif > >>>>> > >>>>> > >>>>>7) For the png plugin > >>>>>edit GNUMakefile > >>>>>ifneq ($(OS),HP-UX) > >>>>>INC += $(PNG_INCLUDE) > >>>>> > >>>>>LINKARGS += -L$(PNG_LIB) > >>>>>else > >>>>>INC += $(PNG_INCLUDE) > >>>>>endif > >>>>> > >>>>> > >>>>>8) build OpenSceneGraph > >>>>>cd OpenSceneGraph > >>>>>d:/buildosg.sh > >>>>> > >>>>>I had some "modification time is in the future" warning, so I > >>>>>repeated the build procedure twice > >>>>> > >>>>> > >>>>>x) to build the Producer examples define two new variables > >>>>>(OSG_INC_DIR and OSG_LIB_DIR) and modify the GNUMakefile for > >>>>>Trackball > >>>>> > >>>>>LIBS = \ > >>>>> -L$(OSG_LIB_DIR) -losgProducer -losgDB -losgGA -losgText > >>>>>-losgUtil -losg \ > >>>>> -lProducer -lOpenThreads > >>>>> > >>>>>INC += -I$(OSG_INC_DIR) > >>>>> > >>>>> > >>>>> > >>>>>-- > >>>>>Ing. Mario Valle > >>>>>Visualization Group | > >>>>>http://www.cscs.ch/~mvalle > >>>>>Swiss National Supercomputing Centre (CSCS) | Tel: +41 > >>>>>(91) 610.82.60 > >>>>>v. Cantonale Galleria 2, 6928 Manno, Switzerland | Fax: +41 > >>>>>(91) 610.82.82 > >>>>> > >>>>>_______________________________________________ > >>>>>osg-users mailing list > >>>>>[email protected] > >>>>>http://openscenegraph.net/mailman/listinfo/osg-users > >>>>>http://www.openscenegraph.org/ > >>>>> > >>>>> > >>>>_______________________________________________ > >>>>osg-users mailing list > >>>>[email protected] > >>>>http://openscenegraph.net/mailman/listinfo/osg-users > >>>>http://www.openscenegraph.org/ > >>>> > >>>> > >>>> > >>>-- > >>>Ing. Mario Valle > >>>Visualization Group | > >>>http://www.cscs.ch/~mvalle > >>>Swiss National Supercomputing Centre (CSCS) | Tel: +41 > >>>(91) 610.82.60 > >>>v. Cantonale Galleria 2, 6928 Manno, Switzerland | Fax: +41 > >>>(91) 610.82.82 _______________________________________________ > >>>osg-users mailing list > >>>[email protected] > >>>http://openscenegraph.net/mailman/listinfo/osg-users > >>>http://www.openscenegraph.org/ > >>> > >>> > >> > >>_______________________________________________ > >>osg-users mailing list > >>[email protected] > >>http://openscenegraph.net/mailman/listinfo/osg-users > >>http://www.openscenegraph.org/ > >> > >> > > _______________________________________________ > > osg-users mailing list > > [email protected] > > http://openscenegraph.net/mailman/listinfo/osg-users > > http://www.openscenegraph.org/ > > _______________________________________________ > osg-users mailing list > [email protected] > http://openscenegraph.net/mailman/listinfo/osg-users > http://www.openscenegraph.org/ _______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
