- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I'm trying to use JAVA call Fortran *.so file. The *.so file is just a "Print Hello" test. I first tried Fortran call Fortran, it worked just fine. But in my JAVA System.load("*.so") code, I got an error that that : libifcoremt.so.5: undefined symbol: tbk_string_stack_signal_impl
So I tried ldd -r *.so,and it showed the same error, and I tried ldd -r libifcoremt.so.5,it showed that there're several undefined symbols,
undefined symbol: pthread_key_create (./libifcoremt.so.5) undefined symbol: dlsym (./libifcoremt.so.5) undefined symbol: pthread_getspecific (./libifcoremt.so.5) undefined symbol: pthread_setspecific (./libifcoremt.so.5) undefined symbol: tck_string_stack_signal_impl (./libifcoremt.so.5)
And I tried c++filt tbk_string_stack_signal_impl
But the result is just
tbk_string_stack_signal_impl
So I don't know where the problem is.
Can you help me please. Thx so much.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The symbol is defined in libirc.so. If you source your compiler's environment variables, all libraries should be present, or if you link a fortran application using ifort as linker, it knows which libraries to include. With Java that is possibly different. So you need to tell your application to also include libirc.so, maybe providing the LD_LIBRARY_PATH is enough, but if you generate an executable using e.g. a C-based linker then you might have to explicitly link in -L<intel library path> -lirc.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am still confused.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The symbol is defined in libirc.so. If you source your compiler's environment variables, all libraries should be present, or if you link a fortran application using ifort as linker, it knows which libraries to include. With Java that is possibly different. So you need to tell your application to also include libirc.so, maybe providing the LD_LIBRARY_PATH is enough, but if you generate an executable using e.g. a C-based linker then you might have to explicitly link in -L<intel library path> -lirc.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Juergen R. wrote:The symbol is defined in libirc.so. If you source your compiler's environment variables, all libraries should be present, or if you link a fortran application using ifort as linker, it knows which libraries to include. With Java that is possibly different. So you need to tell your application to also include libirc.so, maybe providing the LD_LIBRARY_PATH is enough, but if you generate an executable using e.g. a C-based linker then you might have to explicitly link in -L<intel library path> -lirc.
Really helped me locate the problem!!! Thank you so much!!
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page