Программа C на Mac Eclipse сообщает, что "не найдены символы для архитектуры"

Я прохожу свой универсальный курс, следуя инструкциям для Mac, которые были даны на веб-сайте uni.

Вот что мы должны написать:

#include <stdio.h>

int main(void) {

    printf("C is cool!!!");

    return 0;

}

Вот что отображается в консоли:

make all 
Building target: SimpleProj
Invoking: MacOS X C Linker
gcc  -o "SimpleProj"  ./src/MyProg.o   
Undefined symbols for architecture x86_64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [SimpleProj] Error 1

16:51:54 Build Failed. 2 errors, 0 warnings. (took 129ms)

У меня установлен Eclipse CDT с правильной Java 10.

Когда я попробовал, образец программы "Hello World" работал нормально. Но теперь я столкнулся с этим.

Пытался найти похожие проблемы в Интернете, но они отличались от моих. Если вы знаете, как я буду действовать, любые советы приветствуются.

Не используйте Eclipse (обычно это сбивает с толку). Скомпилируйте в командной строке после использования простого редактор исходного кода (я рекомендую emacs, но вы можете использовать другие). Показать команду компиляции исходного файла, содержащего main (возможно, какой-то файл MyProg.c). Возможно, вам стоит использовать что-то вроде gcc -Wall -g -c MyProg.c в соответствующем каталоге. Кстати, для простых программ обычно не стоит иметь подкаталог src/. Вы, вероятно, захотите завершить каждую строку формата printf с помощью \n

Basile Starynkevitch 18.08.2018 15:22

Интересный ввод, который я проверю и будет полезен другим пользователям, ура. Моя проблема решена.

Mark Horowitz 18.08.2018 15:45

Не могли бы вы пояснить для будущих читателей, как была решена ваша проблема? Спасибо!

HighCommander4 24.08.2018 20:21

Абсолютно. По сути, вам просто нужно сохранить перед компиляцией и запуском программы. И вам также следует: щелкнуть правой кнопкой мыши -> «запустить от имени» -> «локальный контейнер c», а не просто щелкнуть зеленую стрелку.

Mark Horowitz 26.08.2018 13:47

При появлении ошибки перезапустите программу (Eclipse). Если я помню, это тоже было частью решения.

Mark Horowitz 26.08.2018 13:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
597
0

Другие вопросы по теме