С++ в xcode: ошибка при вызове любого (!!!!) метода из настраиваемого объекта в main

77
7

Я новичок в C++, поэтому, возможно, я делаю простую ошибку и не понимаю. Я использую XCode.

У меня самый простой класс. В основном я создаю его экземпляр. Хорошо. Но когда я вызываю какой-либо метод из этого объекта, XCode бросает его:

Неопределенные символы для архитектуры x86_64:
"A :: getOne()", на который ссылаются: _main в main.o
ld: символ не найден для архитектуры x86_64 clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

Мой код:

//A.h:
class A {
public:
int getOne();
};

//A.cpp:
#include "A.h"
int A::getOne() {
return 1;
}

//main.cpp:
#include <iostream>
#include "A.h"
int main(int argc, const char * argv[]) {
A a; //create object of class A
a.getOne(); //call a method
return 0;
}

спросил(а) 2021-01-25T18:48:20+03:00 4 месяца, 4 недели назад
1
Решение
77

нажмите на свой проект в левом фрейме внутри Xcode.

у вас будет загружена файловая структура, скорее, у вас должна быть загружена файловая структура, в которую будут включены ваши файлы реализации (.h), файлы спецификаций (.cpp) и ваш основной файл (.cpp)

я помню, что эта ошибка clang: связывание сбоев, когда я впервые начал использовать Xcode, особенно когда начал учиться создавать классы, а что нет. основанный на этом опыте и моем решении для них, я почти уверен, что у вас нет файлов под соответствующей структурой папок и связанных с проектом в Xcode.

чтобы проверить, что вы связали в Xcode, вы должны щелкнуть по проекту в левом фрейме, который имеет синий значок Xcode. он перенесет вас на экран с несколькими вкладками в верхней части основного кадра. щелкните вкладку, в которой написано "Build Phases". использование вкладки "термин" немного вводит в заблуждение, его всего 4 столбца слов, которые ссылаются на новую страницу внутри основного фрейма Xcode.

в стадии сборки щелкните стрелку, которая откроет дерево файлов ниже "источники компиляции".

если вы не видите свой файл спецификации и ваш файл реализации здесь, я вполне уверен, что ваша ошибка привязки из-за этого незначительного надзора...

дайте мне знать, если это поможет.

редактировать:

внутри источников компиляции просто нажмите на знак +, чтобы добавить файлы, необходимые для вашего проекта.

ответил(а) 2021-01-25T18:48:20+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема