我有一个 C 函数如下:
static uint32_t initrd_read(fs_node_t *node,
uint32_t offset, uint32_t size, uint8_t *buffer) {
initrd_file_header_t header = file_headers[node->inode];
if (offset > header.length)
return 0;
if (offset+size > header.length)
size = header.length-offset;
memcopy(buffer, header.offset+offset, size);
return size;
}
当与程序的其余部分链接时,undefined reference to 'memcpy'
抛出 an。memcpy
从未在代码中使用,也未定义。该代码是独立链接的,因此它不会与 C 库冲突。出于某种原因,链接器认为上述函数是memcpy
在函数调用开始时调用的,我不知道为什么。
为什么会发生这种情况?