Ошибка компиляции в Mac OS X

Я пытаюсь скомпилировать файл в Mac OS X, но продолжаю получать сообщение об ошибке

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

Может ли кто-нибудь помочь узнать, что означает эта ошибка?


person noddy    schedule 08.09.2011    source источник


Ответы (1)


Вам не хватает определения main в программе, которая является отправной точкой любого исполняемого файла. Итак, компоновщик жалуется, потому что не нашел точку входа (то есть main ) для окончательного исполняемого файла.

Undefined symbols:
"_main",

Это означает, что ни в одном из скомпилированных исходных файлов нет _main. (т. е. int main(void), int main( int agrc, const char* argv[] в C, C++)

ld: symbol(s) not found

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

person Mahesh    schedule 08.09.2011
comment
Также не могли бы вы посоветовать мне, как добавить библиотеку переполнения в мой mac OSX, чтобы я мог компилировать программы переполнения непосредственно из терминала вместо использования Xcode ?? - person noddy; 08.09.2011
comment
Проверьте эту тему. stackoverflow.com/questions/6851557/ - person Mahesh; 08.09.2011
comment
Что ж, я хочу скомпилировать его с терминала в самой MAC OSX, а не на машине с Linux ... в теме, о которой вы упомянули, говорится о запуске на машине с Linux ... ?? - person noddy; 08.09.2011
comment
Поскольку вы сказали, что вам нужно собрать и запустить программу с помощью терминала, это определенно сработает. Попробуйте один раз :) - person Mahesh; 08.09.2011
comment
я получил ответ ... чего мне не хватало, так это команды для запуска в терминале - person noddy; 08.09.2011
comment
gcc -framework GLUT -framework OpenGL -framework Cocoa robot.c -o robot эта команда поможет скомпилировать файл. - person noddy; 08.09.2011
comment
нодди - Правильно. Вот как я сделал это на своем Mac год назад. Извините за вызванную путаницу :( Но мы можем связать это сами, но это довольно бессмысленно, когда у нас есть прямой способ сделать это на компьютере Mac. - person Mahesh; 08.09.2011