未定义的引用`kill’

我在C中开发了一个ARM7嵌入式系统的应用程序。现在我想用C ++编译和链接它以便使用一些C ++特性。 为此,我使用的是mipsel-elf-g++而不是mipsel-elf-gcc 。 我可以使用mipsel-elf-g++成功编译我的代码,但在链接步骤中我得到错误:

/opt/mipsel/lib/gcc/mipsel-elf/3.4.6/../../../../mipsel-elf/lib/libc.a(lib_a-abort.o):在函数```abort': /cygdrive/d/Files/cross/mips/newlib-1.15.0/newlib/libc/stdlib/abort.c:63: undefined reference to d/Files/cross/mips/newlib-1.15.0/newlib/libc/stdlib/abort.c ```abort': /cygdrive/d/Files/cross/mips/newlib-1.15.0/newlib/libc/stdlib/abort.c:63: undefined reference to _exit’`

/opt/mipsel/lib/gcc/mipsel-elf/3.4.6/../../../../mipsel-elf/lib/libc.a(lib_a-signalr.o):在函数```_kill_r': /cygdrive/d/Files/cross/mips/newlib-1.15.0/newlib/libc/reent/signalr.c:61: undefined reference to kill’`

collect2:ld返回1退出状态

我搜索了这个问题,发现我应该实现自己的_exitkill函数,所以我将这些代码添加到我的项目中:

 void _exit(int code) { while(1); } int _DEFUN (kill, (pid, sig), int pid _AND int sig) { if(pid == __MYPID) _exit(sig); return 0; } 

通过添加这两个函数,对“_exit”错误的未定义引用是固定的,但对“kill”错误的未定义引用仍然存在。

我该怎么做才能解决这个问题?

尝试在extern "C" { … }包装kill函数。 而且,为清楚起见,我建议不要使用_DEFUN宏。

我不确定,但我看到的第一件事是,参数“kill”没有类型……

但我遇到的唯一未定义的引用错误是链接错误…所以你忘了链接到哪些库?