首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成过程中出现错误

生成过程中出现错误
EN

Stack Overflow用户
提问于 2014-09-12 18:09:01
回答 2查看 338关注 0票数 0

我正在尝试使用make编译我的文件,但是,它显示了以下错误

代码语言:javascript
复制
/usr/bin/gcc -march=i586 -m32 -fno-builtin -fno-stack-protector -nostdlib -c -Wall     -O0 -DBSDURG -DVERSION=\""`cat version`"\" -I../include -o binaries/farm.o ../system/farm.c

Loading object files to produce GRUB bootable xinu
binaries/farm.o: In function `initialize':
farm.c:(.text+0x2c): undefined reference to `malloc'

经过一些搜索,人们提到没有包含"stdlib.h“可能是原因,但是,我已经包含了它

代码语言:javascript
复制
/*  farm.c  - definition of farmer and vegetarian lab */

#include <xinu.h>
#include "farm.h"
#include <stdio.h>
#include <stdlib.h>

有人知道可能的原因是什么吗?非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2014-09-12 19:30:22

-nostdlib标志的意思是“不要链接到标准C库”。malloc是libc函数。您可以使用libc链接(通过删除-nostdlib),或者,如果这是必需的,-实现另一个malloc (或者不使用此函数)。

票数 0
EN

Stack Overflow用户

发布于 2014-09-12 19:33:40

包含文件用于函数的编译时解析,而不是符号的链接时解析。

这是一个链接时间问题。

您的问题很可能是由-nostdlib引起的,因为您已经告诉gcc在链接期间不要包含任何普通的标准库函数。(可能是-fono-builtin,但我不这么认为。)

您需要提供您自己的所需标准函数的实现(在本例中为malloc),或者手动链接到包含malloc的任何库(也许是-lgcc?)或者从编译和链接行中删除-nostdlib

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25805830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档