C ++: compilation error - the table "no.eh_frame_hdr" will be created

I have to use a data analysis program for a physics experiment. I can not compile it.

The code is old, incompatible with current versions of GCC from what I can find. To make things a little more interesting, I got code from a guy who modified all the makefiles to compile it on a Mac. I have no experience in C ++, but with man pages, Google and patience, I fixed a lot of errors along the way, but I got stuck on this, even after a week of trying and searching on Google.

I believe the corresponding error message is as follows:

/usr/bin/ld: error in /home/daniel/skola/exjobb/miniballscripts
/lib/libCommandLineInterface.so(.eh_frame); no .eh_frame_hdr table will be created.`

What could be the cause, and what could be the cure?

libCommandLineInterface.so was compiled by me earlier, without any explicit error messages:

$ make  
g++ -g2 -O2 -I./ -c CommandLineInterface.cc -o CommandLineInterface.o  
g++ -g  -Wl -o /home/daniel/skola/exjobb/miniballscripts/lib/libCommandLineInterface.so
CommandLineInterface.o -lm -L/home/daniel/skola/exjobb/miniballscripts/lib -lgcc -lc  
Done

My g ++ is version g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3, amd64.

, ++, , , Makefile - . , , .

+5
3

, -shared libCommandLineInterface.so. . , ( ), .. .so , , , .

, libTransfer.so , . ( ), , . , , , , Linux.:) , -shared undefined.

+3

, , :

[...]/lib/libCommandLineInterface.so: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o:(.text+0x0): first defined here
[...]/lib/libCommandLineInterface.so: In function `_fini':
(.fini+0x0): multiple definition of `_fini'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crti.o:(.fini+0x0): first defined here
[...]/lib/libCommandLineInterface.so:(.rodata+0x0): multiple definition of `_IO_stdin_used'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o:(.rodata.cst4+0x0): first defined here
[...]/lib/libCommandLineInterface.so: In function `__data_start':
(.data+0x0): multiple definition of `__data_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o:(.data+0x0): first defined here
[...]/lib/libCommandLineInterface.so: In function `__data_start':
(.data+0x8): multiple definition of `__dso_handle'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/crtbegin.o:(.data+0x0): first defined here
[...]/lib/libCommandLineInterface.so: In function `_edata':
(*ABS*+0x607130): multiple definition of `__bss_start'
[...]/lib/libCommandLineInterface.so: In function `_end':
(*ABS*+0x6073b8): multiple definition of `_end'
[...]/lib/libCommandLineInterface.so: In function `_edata':
(*ABS*+0x607130): multiple definition of `_edata'
[...]/lib/libCommandLineInterface.so: In function `main':
/home/daniel/skola/exjobb/miniballscripts/Common/CommandLineInterface.cc:6: multiple definition of `main'

, , "" Unix, Mac, GUI.

libCommandLineInterface.cc , , . , . - , , , _start, _end main ..

vtables:

[...]/libTransfer.so: undefined reference to `vtable for Annular'
[...]/libTransfer.so: undefined reference to `ROOT::GenerateInitInstance(Barrel const*)'
[...]/libTransfer.so: undefined reference to `ROOT::GenerateInitInstance(Annular const*)'
[...]/libTransfer.so: undefined reference to `vtable for Barrel'
[...]/libTransfer.so: undefined reference to `vtable for Crystal'
[...]/libTransfer.so: undefined reference to `vtable for Germanium'
+1

. eh_frame_hdr-. undefined , libTransfer.so make, make . , , .

0

All Articles