This error only happens to me with Solaris 11 and Oracle Solaris Studio 12.4, and only if I add the -std=c++11 flag.
I'm trying to link two .o files to create an executable.
One of the files uses sigset from <signal.h>.
It works without the -std=c++11 flag.
But when I add it, I get the following error:
Undefined first referenced
symbol in file
sigset whatever.o
ld: fatal: symbol referencing errors
I've tried everything .. adding the flags -lstdc++ -lgcc_s -lCrunG3 -lc didn't help either ..
sigset appers to be defined:
nm /usr/lib//libc.so | grep sigset
[527] | 883372| 224|FUNC |LOCL |2 |16 |__csigsetjmp
[5694] | 736724| 420|FUNC |WEAK |3 |16 |_sigset
[6599] | 883868| 28|FUNC |GLOB |3 |16 |_sigsetjmp
[4906] | 833680| 532|FUNC |WEAK |3 |16 |_thr_sigsetmask
[6267] | 736724| 420|FUNC |GLOB |3 |16 |sigset
[4590] | 883868| 28|FUNC |GLOB |3 |16 |sigsetjmp
[2244] | 0| 0|FILE |LOCL |0 |ABS |sigsetops.c
[4502] | 833680| 532|FUNC |GLOB |3 |16 |thr_sigsetmask
As far as I know, using -std=c++11 will use the g++ ABI. Maybe something's messed up with the installation?
Aucun commentaire:
Enregistrer un commentaire