【问题标题】:Failing to compile C using GCC使用 GCC 编译 C 失败
【发布时间】:2020-10-10 19:07:41
【问题描述】:

我正在尝试按照this NanoPi Neo 指南的描述编译 test.c。但是,当我尝试运行 gcc 命令进行编译时,我会收到此错误消息...

GNU ld (GNU Binutils for Ubuntu) 2.26.1
  Supported emulations:
   armelf_linux_eabi
   armelfb_linux_eabi
/usr/lib/gcc/arm-linux-gnueabihf/5/../../../arm-linux-gnueabihf/crt1.o: In function `_start':
(.text+0x28): undefined reference to `main'
collect2: error: ld returned 1 exit status

...命令...

sudo gcc -Wall -o test.c -lwiringPi -lpthread -Wl,-V

...以及我正在尝试编译的代码...

#include <wiringPi.h>
int main(void)
{
  wiringPiSetup() ;
  pinMode (7, OUTPUT) ;
  for(;;)
  {
    digitalWrite(7, HIGH) ;
    delay (500) ;
    digitalWrite(7,  LOW) ;
    delay (500) ;
  }
}

我可以猜测这是一个可能的链接问题吗?我只是不确定,我真的知道如何改变它。 当涉及到 C、Linux 等主题时,我比较像新手。 :)

【问题讨论】:

  • 您好!欢迎来到超级用户!您确定要使用 sudo 吗?而且,你确定你不应该包括其中的一些吗? (指出我在评论中犯的任何错误!如果有人发现了什么!)
  • 您为什么要为此使用sudo?您正在创建自己无法修改的文件。
  • -o 选项指定输出文件。因此,如果编译器没有丢弃 test.c,那么您很幸运。正确的命令是gcc -Wall test.c -o myprogram,后跟命令中的选项。

标签: linux ubuntu gcc c arm


【解决方案1】:

您没有指定任何.c 源文件,因为-o 将输出指定为提到的@user3386109。

sudo gcc -Wall test.c -o output_file_name -lwiringPi -lpthread -Wl,-V

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-28
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多