加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 对“kill”的未定义引用

发布时间:2020-12-16 07:28:37 所属栏目:百科 来源:网络整理
导读:我在C中开发了一个ARM7嵌入式系统的应用程序.现在我想编译并用C链接它以便使用一些C功能.为此,我使用mipsel-elf-g而不是mipsel-elf- gcc.我可以成功使用mipsel-elf-g编译我的代码,但在链接步骤中我得到错误: /opt/mipsel/lib/gcc/mipsel-elf/3.4.6/../../..
我在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): In function```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): In function```_kill_r':
/cygdrive/d/Files/cross/mips/newlib-1.15.0/newlib/libc/reent/signalr.c:61: undefined reference to
kill’`

collect2: ld returned 1 exit status

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

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宏.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读