Что означает ошибка времени компиляции «Неопределенные символы для архитектуры x86_64»?

Я пытаюсь запрограммировать класс графа, используя соседний список из примера в моем учебнике C ++, и когда я компилирую эту команду: Код: g ++ -o prog program.cpp ... Я получаю следующую ошибку:

Undefined symbols for architecture x86_64:
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

... что, черт возьми, это означает? Это может оказаться проблемой с моим кодом, но я чувствую, что это может быть глубже, потому что я получил ту же, казалось бы, необъяснимую ошибку для нескольких разных проектов, многие из которых были решены по-разному, и, к сожалению, полностью случайно.

Я где-то читал, что это может иметь отношение к тому, использую ли я 32-битные или 64-битные библиотеки, и что, возможно, нужно использовать теги -m32 или -m64, но я не уверен, применимо ли это здесь . Достаточно интересно, что когда я попытался добавить тег -m64, я получил ту же самую ошибку, но когда я попытался использовать тег -m32, я получил ту же ошибку, за исключением того, что вместо этого было сказано

Undefined symbols for architecture i386:
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

.

В основном я просто хочу знать, о чем, черт возьми, говорит ошибка. Я привык отлаживать ошибки времени компиляции, которые дают определенную строку в коде и т. Д., Но я не могу различить из этого ничего подобного. Есть идеи?

Если это поможет, я использую Macbook конца 2008 года с Intel Core 2 Duo (т.е. 64-разрядную версию), и я использую OS X Lion (10.7.2), которая, как мне кажется, является наиболее подходящей. Последняя версия. Также я использую gcc версии 4.2.1.

37
задан Cœur 3 April 2018 в 10:35
поделиться