/usr/bin/ld: cannot find crt1.o: No such file or directory就这一个错误,导致无法编译出可执行文件。

如题。Linux系统glibc-devel最新版本使用gcc4.5gcc4.6gcc4.7.0gcc4.7.1gcc4.8.0测试版均无法编译C源文件生成可执行ELF文件... 如题。Linux系统

glibc-devel 最新版本
使用gcc4.5 gcc4.6 gcc4.7.0 gcc4.7.1 gcc4.8.0测试版均无法编译C源文件生成可执行ELF文件(但可生成中间文件),这个问题是莫名奇妙出现的(就今天才出现...),在之前都是正常的(编译gcc4.8时都好的)。
展开
 我来答
大宝妈谈教育
高粉答主

2020-04-28 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:54.3万
展开全部

GCC当前的体系结构是64位的,但是需要32位的支持文件,所以需要安装GCC-multilib。

终端输入命令如下:sudoaptinstallgcc-multilib。

程序编译成可执行的exe文件的方法:

1.编写一个简单的代码,如下图所示,然后编辑一个简单的output语句。

2.点击菜单栏,进行编译→编译→执行,确保正确执行。

3.从运行结果看程序是否正确,没有问题,然后找到exe可执行程序看是否有闪回现象

4.保存C语言代码后,打开代码所在的文件夹。在这个文件夹中,有一个名为[Debug]的文件夹。

5.但是,当exe可执行程序运行时,会自动闪回,运行结果无法查看;此时,您需要在程序的末尾添加一个pause语句:getchar();然后重新运行C代码。

6.在[Debug]文件夹中第二次打开exe可执行程序,但是没有flash返回,可以清楚地看到程序的结果。

geraint0923
推荐于2017-09-11 · TA获得超过336个赞
知道小有建树答主
回答量:102
采纳率:100%
帮助的人:117万
展开全部
crt1.o是libc里面的目标文件,因此这个文件不存在很可能是glibc的问题,所以首先需要做的确定你的glibc已经正确安装,并且装在正确的地方
追问
有一个临时的解决方案
我设置SHELL环境变量
export LIBRARY_PATH=/usr/lib/i386-linux-gnu

就好了,但每次都要设置一遍..有没有办法简化...
追答
那你就把这行东西加到你的~/.bashrc里面:
echo "export LIBRARY_PATH=/usr/lib/i386-linux-gnu" >> ~/.bashrc
之后新开的终端就能够不用再设置这个东西的
如果想马上生效,就
source ~/.bashrc
应该就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-04-21
展开全部
问题来源于当前架构的gcc是64位,但需要32位支持文件,U因此需要安装gcc-multilib。终端输入命令如下:
sudo apt install gcc-multilib
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式