c - 链接器错误导致问题

标签 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 文件完好无损。

最佳答案

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

这可能有几类原因:

  • 链接中缺少库
  • 模块编译不正确:选项、#defines 或 CC++ 不匹配
  • 错误地链接了不应该链接的模块

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

关于c - 链接器错误导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6937361/

相关文章:

c - 将 char 作为参数传递给函数将其存储在堆栈上的非默认位置

创建插件管理系统

c++ - 命名循环成语 : dangerous?

javascript - emscripten 在 C 中读取 javascript arrayBuffer

c - 在 Linux 上使用套接字发出 https 请求

c - 将字符串与链表数据元素进行比较时,strcmp 不会返回 0

c - 删除数组中的最后一个元素

c - 从文本文件读取行到结构 C

c++ - 无法理解是否在 #define 中

c - 为什么信号处理程序不处理信号