Ошибка поиска символа: неопределенный символ atexit (linux / C) - PullRequest
1 голос
/ 07 июля 2011

Я получаю ошибку Symbol lookup error: undefined symbol atexit (linux/C) при попытке запустить программу.atexit() должно быть определено в <stdlib.h>.

Могу ли я что-нибудь добавить к опции -l при компиляции с помощью gcc?Или что-нибудь еще, что я мог сделать?Это в C.

Я пытаюсь написать общий объект, где я вызываю atexit один раз.Я также определяю соответствующую функцию , как объяснено .

$ LD_PRELOAD=mymal.so /bin/ls 
/bin/ls: symbol lookup error: ./mymal.so: undefined symbol: atexit

Я не получаю ошибку после компиляции, только когда пытаюсь ее выполнить.

Я строюобщая библиотека с командами ( source ):

gcc -fPIC -c -ldl mymal.c
ld -shared -soname mymal.so.1 -o mymal.so -lc mymal.o

решена: она работала с g++ вместо gcc.

1 Ответ

1 голос
/ 07 июля 2011

Функция называется atexit, а не Atexit.

...