Ld: 1 дублирующий символ для архитектуры x86_64
Я очень новичок в программировании на C и С++, и у меня очень мало опыта в программировании (мой фон основан на Интернете). Но я пытаюсь поэкспериментировать с C/С++ и Xcode... Поэтому я нашел этот код (и многие аналогичные варианты онлайн):
#include <stdio.h>
int main()
{
printf ("Test");
return 0;
}
Но когда я прихожу, чтобы скомпилировать его в Xcode, я получаю следующую ошибку:
> duplicate symbol _main in:
> /Users/thomas/Library/Developer/Xcode/DerivedData/test-etqojvxbxhxjqeggdzkbfufvbeza/Build/Intermediates/test.build/Debug/test.build/Objects-normal/x86_64/first.o
> /Users/thomas/Library/Developer/Xcode/DerivedData/test-etqojvxbxhxjqeggdzkbfufvbeza/Build/Intermediates/test.build/Debug/test.build/Objects-normal/x86_64/main.o
> ld: 1 duplicate symbol for architecture x86_64 clang: error: linker
> command failed with exit code 1 (use -v to see invocation)
Может быть, Xcode - это неправильная вещь для меня как новичок? Если бы кто-нибудь мог рекомендовать лучший компилятор, это тоже было бы здорово!
Ответы
Ответ 1
Когда вы создаете новый проект в Xcode, он автоматически дает вам начальный файл с main()
. Если вы создали новый файл, например first.c
, а затем вставили в него свой тестовый код, вы дважды определяете main()
и получаете эту ошибку.
Вам нужно либо удалить файл (например, main.c
, либо main.m
), который Xcode предоставляет в вашем новом проекте, или вырезать и вставить ваш образец кода в этот файл, а не создавать новый.