2012-03-03 3 views
1

Мой код идентичен this вопрос, я спросил ранее, так что нет смысла дублировать его здесьApple, Mach-O Link (Id) Ошибка

Это ошибка я получаю:

Undefined symbols for architecture x86_64: 
    "_stdscr", referenced from: 
     _screen_init in screen.o 
    "_werase", referenced from: 
     _screen_init in screen.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

I «У меня была эта ошибка в прошлом, и я чувствую, что она имеет какое-то отношение к дублируемому имени функции или чему-то еще, но я понятия не имею, как отлаживать это.

EDIT:

После добавления файла libncurses.dylib к моему проекту, ошибки, описанные выше, исчезли, но новая ошибка возникла, когда я называю screen_init(); в моей main.cpp:

// main.cpp

#include "screen.h" 

int main(){ 
    screen_init(); 
} 

// Новая ошибка

Undefined symbols for architecture x86_64: 
    "screen_init()", referenced from: 
     _main in main.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

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

ответ

1

Я думаю, вам нужно добавить библиотеку к вашей фазе линии, если вы собираетесь с XCode вы должны добавить его в деталях проекта:

  • выбрать детали проекта
  • выберите построить фазы Вкладка
  • бинарный файл с открытой связью с библиотекой часть
  • щелкните символ плюса
  • добавьте libncurses.dylib в проект.
+0

Я пошел вперед и добавил эту библиотеку в свой проект, и это забрало ошибки, но когда я вызываю screen_init(); от моего основного теперь, я получаю еще одну ошибку Mach-O Link. Для получения более подробной информации см. Мое редактирование выше. – jasonaburton

Смежные вопросы