/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
文件完好无损。
最佳答案
该错误意味着链接的模块缺少命名项的定义FastNew(unsigned int)
等。也就是说,某些代码引用了该项,但没有实现它。
这可能有几类原因:
- 链接中缺少库
- 模块编译不正确:选项、#defines 或
C
与C++
不匹配 - 错误地链接了不应该链接的模块
从引用的模块类型来看,我认为原因可能是第一个。寻找应该包含的内存管理库。
关于c - 链接器错误导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6937361/