-
RWOrderedIterator
Hello,
I have a piece of code that I'm compiling and running on Unix :-
...
RWOrderedIterator nextColumn( pRow->getColumns() );
...
when I compile using Sun_Solaris_11, all compiles and runs ok.
If I use Sun_Solaris_12, then the program compiles ok, without any warnings but crashes on this line.
I put debug messages to make sure this is the problematic line.
Any ideas what this might be please ?
Many thanks,
Imanuel.
-
Have you recompiled/obtained your RogueWave library for 64 bit or are you trying to use 32 bit versions? From your previous posts it seems you're doing some migration work. I don't think that it's directly an O/S issue, more likely H/W architecture ...
DKyb
-------------------------------
Life is a short warm moment -
Death is the long cold rest.
Pink Floyd
-------------------------------
-
Thanks for that.
How do I know whether I'm using the 64-bit of RW ? If I'm pointing my PATH to the Sun Solaris 12 compiler, isn't this enough ?
I actually checked and RWOrderedIterator exists under /hfx/opt/Sun_ONE_Studio_12_Compiler_Collection
Thanks.
-
no straight-forward answer:
-if you are using make files then you should make sure that your include/library - paths point to the 64 bit versions for all *.a/*.lib files etc. RW is not a system library but a 3rd party (and might I say legacy) library.
- also make sure that your $PATH variable has the 64-bit paths before the 32bit paths (if you got any). The reverse is true if you compile 32 bit.
- but as mentioned before: you should make sure that the library version you're pointing to is indeed the 64bit one. If your company has the source code (which I know some of them have) then your best bet is to re-compile/re-link the library
- If I were you I'd try to successively replace things like RWOrderedThingyOneOrOther with something more reliable and standard like the STL/boost. Saves you headaches in the future and indeed the paths and environments settings should point you to the right files for your arcitecture and O/S
DKyb
-------------------------------
Life is a short warm moment -
Death is the long cold rest.
Pink Floyd
-------------------------------
-
It's not enough to compile the code with the right flags. You still need to link against the 64-bit RW binaries, which is probably where the problem lies.
Danny Kalev
-
Hi Danny,
Thanks for that.
I checked online and found that all I need to do is point to /usr/lib (where the 64-bit libraries exist) and create a new LD_LIBRARY_PATH_64 (which apparently can be set to be the same as LD_LIBRARY_PATH, with the only difference of pointing to sourcepro9). Do you know whether there is anything else that needs to be added to LD_LIBRARY_PATH_64 ? Also, does it matter if I still have in my environment LD_LIBRARY_PATH as well as LD_LIBRARY_PATH_64 ? Even when I removed LD_LIBRARY_PATH and only kept LD_LIBRARY_PATH_64 I got the same result.
I’m using Sun_Studio_12 compiler since we need Oracle 11.2 (and when we installed Oracle 11.2 a pre-requisite was to install Sun_Studio_12 compiler). When I read online, I found that Sun_Studio_12 compiler should be used with sourcepro 10. Any ideas if I can use sourcepro9 ?
Is there a way for me to confirm that I actually linked using 64-bit ? I used 'ldd' and 'file' and they confirmed to me that it's a 64-bit executable, but I am not sure how to confirm that I linked 64-bit.
Can you please help ?
Many thanks,
Imanuel.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Development Centers
-- Android Development Center
-- Cloud Development Project Center
-- HTML5 Development Center
-- Windows Mobile Development Center
|