看似随机的未定义引用

时间:2015-05-01 12:22:38

标签: c malloc

有一个像样的malloc包,只是在灾难发生时试图完成realloc 正确编译的一半时间,另一半时间,包中的几乎所有功能都是未定义的。"

mdriver.c:(.text+0x1e3): undefined reference to `mm_init'
mdriver.c:(.text+0x221): undefined reference to `mm_realloc'
mdriver.c:(.text+0x255): undefined reference to `mm_free'   

...等等,几乎所有功能加上"团队,"虽然我没有任何名称的功能。 我在字面上改变了copySize分配中的数字,偶尔得到两个结果,无论数字选择如何,现在,我使用的任何数字都会给我带来巨大的失败。它使用一个名为mdriver.c的makefile进行编译。

 /*
  * mm_realloc - Implemented simply in terms of mm_malloc and mm_free
  */
 void *mm_realloc(void *bp, size_t size)
 {
     void *obp = bp;
     void *nbp;
     size_t copySize = 10;
     size_t asize = ALIGN(size);

     nbp = mm_malloc(asize);
     if (nbp == NULL)
       return NULL;
     copySize = *(size_t *)((char *)obp - SIZE_T_SIZE + 2);
     if (asize < copySize)
       copySize = asize;
     memcpy(nbp, obp, copySize);
     mm_free(obp);
     return nbp;
 }

0 个答案:

没有答案