在Linux Mint中编译C程序时出错

在Linux Mint中编译C程序时出错,c,ubuntu,gcc,ld,C,Ubuntu,Gcc,Ld,我在编译一个简单的C程序时出错 #include<stdio.h> void main() { int i=5; printf("I value is %d",i); } 我的gcc版本是 gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. 有人知道我的问题是什么吗?如果运行的是binutils的后台版本,有时会出现这种情况。作为第一步,您

我在编译一个简单的C程序时出错

#include<stdio.h>
void main()
{
      int i=5;
printf("I value is %d",i);
}
我的gcc版本是

gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.

有人知道我的问题是什么吗?

如果运行的是
binutils
的后台版本,有时会出现这种情况。作为第一步,您需要检查您的
gcc
版本的依赖项,并确保它们都已安装。

尝试使用--prefix=--with sysroot重新编译binutils

按照下面的教程,建议以以下方式将path/usr/bin插入环境变量

export PATH="/usr/bin:$PATH".


这对我来说很有效。

这个问题可以通过改变环境路径来解决。环境变量设置在/etc目录中。移动到其中,有一个名为环境的文件,其中提到的所有路径如下所示:

PATH=“/usr/local/sbin:/usr/sbin:/usr/local/bin:/sbin:/bin:/usr/games:/usr/local/games”

我们需要在列表中添加一个路径/usr/bin,如下所示:

PATH=“/usr/local/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/sbin:/bin:/usr/games:/usr/local/games”

在此之后,我们需要保存文件,然后重新启动系统,然后。。。。工作完成了

另外,有关环境文件的详细信息可以在网上轻松找到。这里有一个不错的链接:


快乐编辑;)

这是链接器错误,不是编译器错误。添加
-v
标志会输出什么?除此之外,
main
应该返回
int
,因此需要一个
return
语句。程序已经告诉您问题所在。你最近更新过你的操作系统吗?——@CarlNorum没关系。但是,我也犯了同样的错误。。添加return语句并将void更改为int.@pivovarit yes dude之后。你是一个有教养的人。我更新了我的操作系统。任何建议??有点不相关,但是如果你是一个“按书”编程的C程序员,void main对于托管的实现是无效的。这对这个有影响吗@paxdiablo@Siva几乎可以肯定。您现在可能需要修复gcc和binutils之间的不兼容。您能告诉我修复它们的方法吗-@paxdiablo@Siva,可能最简单的方法是查看
aptitude重新安装
,前提是Ubuntu没有太多偏离其Debian根源。我假设既然你已经安装了binutils,你就知道你在做什么,尽管我可能弄错了:-)这不是一个无痛的过程,但你可能想在上问一个问题,因为它不再真正与编程相关。嗯,我通过下载包和./configure,make和make install手动安装了binutils。无论如何谢谢你的帮助。实际上,我在安装“texinfo-5.1”时遇到了这个错误@帕斯迪伯罗汉克,你这家伙。。但是,对于这一个也面临着同样的错误:'(-with build sysroot=sysroot这将在生成期间使用sysroot作为系统根
export PATH="/usr/bin:$PATH".