链接器错误导致问题

时间:2011-08-04 06:57:21

标签: c

/home/crbt/AUT/SVN/version1.1/Code/poly6.3/linux/i386/gcc/lib/libpat.a(polymem.o): In function `poly_memory_init':
    polymem.cxx:(.text+0x71): undefined reference to `FastNew(unsigned int)'
    polymem.cxx:(.text+0x76): undefined reference to `FastDelete(void*)'
    polymem.cxx:(.text+0x81): undefined reference to `init_new_and_delete(void* (*)(unsigned int), void (*)(void*))'
    polymem.cxx:(.text+0xab): undefined reference to `MemoryHandler::Create(MemoryHandlerInitStruct*)'
    polymem.cxx:(.text+0xbe): undefined reference to `WarmNew(unsigned int)'
    polymem.cxx:(.text+0xc3): undefined reference to `WarmDelete(void*)'
    polymem.cxx:(.text+0xcc): undefined reference to `init_new_and_delete(void* (*)(unsigned int), void (*)(void*))'

我无法理解链接器错误背后的原因。我导航到上面提到的路径,发现libpat.a文件完好无损。

1 个答案:

答案 0 :(得分:0)

错误意味着链接的模块缺少命名项FastNew(unsigned int)等的定义。也就是说,某些代码引用了该项,但没有实现它。

这可能有几类原因:

  • 链接中缺少一个库
  • 模块编译错误:选项不匹配,#define或CC++
  • 不匹配
  • 模块被错误地链接,不应该是

从引用的模块类型来看,我认为原因可能是第一个。寻找应该包含的内存管理库。