#linux #ubuntu #gcc #c #arm
#linux #ubuntu #gcc #c #arm
Вопрос:
Я пытаюсь скомпилировать test.c, как описано в руководстве NanoPi Neo. Однако, когда я пытаюсь запустить команду 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 и тому подобное. 🙂
Комментарии:
1. Привет! Добро пожаловать в суперпользователь! Вы уверены, что хотите использовать sudo? И вы уверены, что вам не следует также включать некоторые из них? <stdio.h> <stdlib.h> <stdint.h> (Укажите на любые ошибки, которые я допускаю в своем комментарии! Если кто-то что-нибудь заметил!)
2. Почему вы бы использовали
sudo
для этого? Вы создаете файл, который не можете изменить самостоятельно.3.
-o
Опция определяет выходной файл. Итак, вам повезло, если компилятор не уничтожил test.c. За правильной командойgcc -Wall test.c -o myprogram
следуют параметры, которые у вас есть в вашей команде.
Ответ №1:
Вы не указали никаких .c
исходных файлов, поскольку в -o
нем указан вывод, указанный в @user3386109.
sudo gcc -Wall test.c -o output_file_name -lwiringPi -lpthread -Wl,-V