文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于make出现类似(.text+0x37): undefined refer..

关于make出现类似(.text+0x37): undefined refer..

时间:2010-09-06  来源:fishmwei

有时gcc编译一个工程,突然出现这么个问题:

gcc -Wall   -c -o b.o b.c
gcc -Wall -o test  b.o
b.o:b.c:(.text+0x37): undefined reference to `_printa'
collect2: ld returned 1 exit status
make: *** [test] Error 1

有点摸不着头了,明明在已经在文件里声明了printa这个函数了啊,怎么还是未定义?

看看模拟的简单工程结构:
一个a文件夹里面有a.h,a.c
文件夹b是a的子文件夹,里面有b.c函数

文件内容分别如下:
-------------a/a.h----------------
#include <stdio.h>

int printa(void);

-------------a/a.c----------------

#include <stdio.h>

int printa(void)
{
    printf("printa is called\n");   

    return 0;
}

--------------a/b/b.c----------------
#include "../a.h"

extern int printa(void);

int main(void)
{
    printf("it's b\n");

    printa();

    return 0;
}

-----------------------------------
b。c中的确声明了printa()函数啊,但是编译器在连接的时候找不到编译过的printa()函数,所以就提示找不到_printa()了,因为printa()函数在a目录下,make只是在b目录下执行,a.c并没有被编译,所以link的时候就提示错误了。

呵呵,工作的时候,恰好遇到类似的一个问题。了解了一下,分享一下。。。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载