Archived
This forum has been archived. Please start a new discussion on GitHub.
Freeze does not compile for me in Ice 2.1.0
I'm pretty sure this is NOT a 2.1.0 bug because I had the same problem before. I was kind of hoping the problem would go away with 2.1.0.
Anyways, my build freezes when it hits freeze. How ironic. I've looked around on the forum and it seems that not having the right kind of berkley db installed would do this.
I am using 4.2.52-90, and I imagine suse does the compile option for c++ because the suse 9.2 built in rpm "provides" libdb-4.2.so and libdb_cxx-4.2.so
Please keep in mind I'm pretty new to linux, so don't rule anything out that should be obvious! I probably havn't done it.![:) :)](https://forums.zeroc.com/resources/emoji/smile.png)
I'll post an excerpt of my build. For grins, I also tried it as root.
I'm using a fairly "normal" suse 9.2 pro, with gcc-v
Whatever I need to do or whatever information is needed, I'll be more than happy to oblige.
Thanks
Philip
Anyways, my build freezes when it hits freeze. How ironic. I've looked around on the forum and it seems that not having the right kind of berkley db installed would do this.
I am using 4.2.52-90, and I imagine suse does the compile option for c++ because the suse 9.2 built in rpm "provides" libdb-4.2.so and libdb_cxx-4.2.so
Please keep in mind I'm pretty new to linux, so don't rule anything out that should be obvious! I probably havn't done it.
![:) :)](https://forums.zeroc.com/resources/emoji/smile.png)
I'll post an excerpt of my build. For grins, I also tried it as root.
IC -Wall -D_REENTRANT ConnectionF.cpp c++ -c -I.. -I../../include -DFREEZE_API_EXPORTS -g -ftemplate-depth-128 -fPIC -Wall -D_REENTRANT ConnectionI.cpp In file included from ../Freeze/ConnectionI.h:15, from ConnectionI.cpp:10: ../Freeze/TransactionI.h:14:20: db_cxx.h: No such file or directory In file included from ../Freeze/ConnectionI.h:16, from ConnectionI.cpp:10: ../Freeze/SharedDbEnv.h:16:20: db_cxx.h: No such file or directory In file included from ../Freeze/MapI.h:14, from ConnectionI.cpp:11: ../Freeze/SharedDb.h:14:20: db_cxx.h: No such file or directory In file included from ../Freeze/MapI.h:14, from ConnectionI.cpp:11: ../Freeze/SharedDb.h:41: error: `Db' was not declared in this scope ../Freeze/SharedDb.h:41: error: syntax error before `,' token ../Freeze/SharedDb.h:48: error: syntax error before `*' token ../Freeze/SharedDb.h:53: error: semicolon missing after declaration of ` Freeze::MapIndexI' ../Freeze/SharedDb.h: In member function `const std::string Freeze::MapIndexI::name() const': ../Freeze/SharedDb.h:45: error: `_index' undeclared (first use this function) ../Freeze/SharedDb.h:45: error: (Each undeclared identifier is reported only once for each function it appears in.) ../Freeze/SharedDb.h: At global scope: ../Freeze/SharedDb.h:53: error: syntax error before `:' token ../Freeze/SharedDb.h:56: error: `Db' was not declared in this scope ../Freeze/SharedDb.h:56: error: template argument 1 is invalid ../Freeze/SharedDb.h:56: error: ISO C++ forbids declaration of `_db' with no type
I'm using a fairly "normal" suse 9.2 pro, with gcc-v
philipd@linux:~> gcc -v Reading specs from /usr/lib/gcc-lib/i586-suse-linux/3.3.4/specs Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --enable-languages=c,c++,f77,objc,java,ada --disable-checking --libdir=/usr/lib --enable-libgcj --with-gxx-include-dir=/usr/include/g++ --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit i586-suse-linux Thread model: posix gcc version 3.3.4 (pre 3.3.5 20040809)
Whatever I need to do or whatever information is needed, I'll be more than happy to oblige.
Thanks
Philip
0
Comments
-
Hi,
My guess is that you don't have the berkeley db 4.2.52 development RPM (db-devel 4.2.52) installed since the compilation is not finding db_cxx.h. Try installing this http://www.novell.com/products/linuxpackages/professional/db-devel.html RPM and let us know if this solves your problem.
Regards, Matthew0 -
Depending on your distribution, your db-devel or db4-devel will or will not include the libdb_cxx.so symbolic link.
It should be included, but it's unfortunately not obvious to everybody:
https://bugzilla.redhat.com/beta/show_bug.cgi?id=149191
If you don't have this symbolic link, I recommend to create it yourself (as root); alternatively you can edit Ice's config/Make.rules and replace -ldb_cxx with -ldb_cxx-4.2.
Cheers,
Bernard0 -
gcc 3.3
Excelent advice. Installing the development package fixed it for me. Like I said... something simple
But now I have another problem.philipd@linux:~/build/Ice-2.1.0/bin> ./slice2cpp ./slice2cpp: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
I think this is caused by using gcc 3. Is there something I need to do to make it work with libstdc++.so.5?
Thanks
Philip0 -
mysteriously is working
Well, I somehow mysteriously got it working. It isn't working under root but it is working under my username, philipd. I'm not sure why and if someone knows offhand, I'd appreciate the educationBut regardless, it works, and now I get to play with Ice.
By the way, thanks for putting out such a great product and lending a hand so readily. This is such a great community.
Thanks
Philip0 -
I'm glad you got it work
. I must say I was a bit puzzled by the error! I don't quite understand why it's looking for libstdc++.so.6 if you only have libstdc++.so.5 installed. It sounds like the root user and your regular user have different environments... The best way to track this down is to compare the LD_LIBRARY_PATH environment variable under both accounts. You can also use the ldd command to see against which library slice2cpp is linked and how the libraries are resolved in the current environment:
$ ldd ./slice2cpp
You should try this under both accounts and see the differences.
Hope this helps!
Benoit.0