From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcel Ruff To: gcc@gcc.gnu.org Subject: RE: C++ Static Variable Initialization Date: Sat, 15 Sep 2001 17:12:00 -0000 Message-id: <3BA3EE46.3070708@swand.lake.de> X-SW-Source: 2001-09/msg00612.html > Thanks for your response. I do not have a main() program. I am creating a > shared library using g++. This shared library gets called from an existing > commercial application hence I do not have control over it. Hi, i have the same problem. i am using Linux 2.4.4-4 with JDK 1.3.1 and egcs 2.95.3 I want to call one method in a native, shared C++ library from Java, using JNI. So i have no main() program. The C++ .so lib depends on other .so libs which have many C++ classes which are usually initialized automatically on startup before the main() method (if i invoke the old C++ application executable). Now it seems, that the java System.load() which loads the C++ shared library does not call something like _main_() I believe all my global C++ classes are uninitialized - as i get this error: -------------------------- An unexpected exception has been detected in native code outside the VM. Unexpected Signal : 11 occurred at PC=0x405927d9 Function name=__as__t12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0RCt12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0 Library=/usr/lib/libstdc++-libc6.1-1.so.2 --------------------------- Is there any lowlevel main() in the Linux clib which i can invoke manually? thanks for any hint, Marcel As I understand the process, g++ emits magic during main() call to initialize "static const" variables to their defined value. I have seen that if the variables do not get initialized proeprly specifically if they are of string type. I have found out that the reason for this is absence of main() in my program, where these variables are supposed to be initialized. After reading some reference books, I have found out that there may be a compiler dependent procedure that I can call to initialize these variable. Specifically since I am using g++ compiler, what function call can I make to intialize all my static const string variables properly. -- Marcel Ruff mailto:ruff@swand.lake.de http://www.lake.de/home/lake/swand/ http://www.xmlBlaster.org