符号查找错误:未定义符号atexit(linux / C)

时间:2011-07-07 13:39:02

标签: c linux shared-libraries

当我尝试运行程序时收到错误Symbol lookup error: undefined symbol atexit (linux/C)atexit()应在<stdlib.h>.

中定义

使用gcc编译时,我可以添加-l选项吗?还是我能做的其他事情?这是在C.

我正在尝试编写一个共享对象,我只调用atexit一次。我还定义了相应的函数like explained

$ 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 个答案:

答案 0 :(得分:1)

该函数名为atexit,而不是Atexit