Ошибки сборки: «не удается найти цель для файла» и «неопределенная ссылка» - PullRequest
0 голосов
/ 05 июня 2018

Я использую кодовый блок, и мой компилятор настроен на [-std=c++0x].Я создал простой проект со следующим кодом:

main.cpp

#include <iostream>
#include "Cat.h"
using namespace std;

int main() {
    Cat action;
    action.meow();
    action.jump();
    return 0;
}

Cat.h

#ifndef CAT_H_INCLUDED
#define CAT_H_INCLUDED

class Cat {
public:
    void meow();
    void jump();
};
#endif // CAT_H_INCLUDED

CatProcess.cpp

#include <iostream>
#include "Cat.h"
using namespace std;

void Cat::meow() {
    cout << "meow" << endl;
}
void Cat::jump() {
    cout <<"jump" << endl;
}

Сообщения об ошибках:

Когда я собираю и запускаю весь проект, эта ошибка появляется на главной.cpp строка 8 в моей IDE:

неопределенная ссылка на 'Cat :: meow ()'

Когда я собираю и запускаю CatProcess.cpp, эта ошибка появляется:

ошибка: не удается найти цель для файла

Журнал сборки:

mingw32-g ++. Exe -Wall -fexceptions -g -std = c ++ 0x -c C: \ Users \ Im_so \ Documents \ CodeBlock_Projects \ ClassesForCats \ main.cpp -o obj \ Debug \ main.o

obj \ Debug \ main.o: В функции 'main': C: /Users/Im_so/Documents/CodeBlock_Projects/ClassesForCats/main.cpp: 8: неопределенная ссылка на 'Cat :: meow ()'

C: / Users /Im_so / Documents / CodeBlock_Projects / ClassesForCats / main.cpp: 9: неопределенная ссылка на 'Cat :: jump ()'

collect2.exe: ошибка: ld вернул 1 состояние выхода

1 Ответ

0 голосов
/ 05 июня 2018

По умолчанию в Code :: Blocks при создании нового исходного файла он не добавляется ни к какой цели сборки.При создании файла есть два флажка - Debug и Release.Если вы хотите добавить уже созданный файл к цели, щелкните правой кнопкой мыши файл в кодовых блоках -> Свойства -> Построить и выберите Отладка и Выпуск.

...