сигсет не найден

Рассмотрим следующий пример:

#include <signal.h>

extern "C" {
static void signalHandler(int signal) {}
}

int main(int, char**)
{
sigset (SIGTERM, signalHandler);
return 0;
}

CC test.cpp преуспевает.

Но

CC test.cpp -std=c++11
Undefined                       first referenced
symbol                             in file
sigset                           test.o
ld: fatal: symbol referencing errors

Я также попробовал следующее:

CC test.cpp -std=c++11 -lstdc++ -lgcc_s -lc

Но выдает ту же ошибку. -m64 тоже не помогает

И не делает —lstdc++ -lgcc_s -lCrunG3,

ОС: солярис 11
Компилятор: CC из Oracle Solaris Studio 12.4

Требуется вывод:

me@myhost:~/projects/cpptest> CC -std=c++11 -c test.cpp -o test.o
me@myhost:~/projects/cpptest> nm -A test.o | grep sigset
test.o: [14]    |         0|         0|FUNC |GLOB |0    |UNDEF  |_Z6sigset
me@myhost:~/projects/cpptest> nm -A /usr/lib/libc.so | grep sigset
/usr/lib/libc.so: [527] |    883372|       224|FUNC |LOCL |2    |16     |__csigsetjmp
/usr/lib/libc.so: [5694]        |    736724|       420|FUNC |WEAK |3    |16     |_sigset
/usr/lib/libc.so: [6599]        |    883868|        28|FUNC |GLOB |3    |16     |_sigsetjmp
/usr/lib/libc.so: [4906]        |    833680|       532|FUNC |WEAK |3    |16     |_thr_sigsetmask
/usr/lib/libc.so: [6267]        |    736724|       420|FUNC |GLOB |3    |16     |sigset
/usr/lib/libc.so: [4590]        |    883868|        28|FUNC |GLOB |3    |16     |sigsetjmp
/usr/lib/libc.so: [2244]        |         0|         0|FILE |LOCL |0    |ABS    |sigsetops.c
/usr/lib/libc.so: [4502]        |    833680|       532|FUNC |GLOB |3    |16     |thr_sigsetmask
me@myhost:~/projects/cpptest>

Если я использую <csignal> вместо <signal.h>Я получаю следующую ошибку:

"test.cpp", line 17: Error: The function "sigset" must have a prototype.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]