这是我的错误
“/ Library / Developer / CommandLineTools / usr / bin / make”-f nbproject / Makefile-Debug.mk QMAKE = SUBPROJECTS = .build-conf “/ Library / Developer / CommandLineTools / usr / bin / make”-f nbproject / Makefile-Debug.mk dist / Debug / GNU-MacOSX / practice3 make [2]: *没有规则来制作目标
newClass.cpp', needed by
build / Debug / GNU-MacOSX / newClass.o'。停止。 make [1]:* [.build-conf]错误2 make:*** [.build-impl]错误2
在制作这个程序前几分钟我偶然创建了一个名为newClass的类,但后来我将其删除了,我根本无法在我的计算机上找到它。
这是我的程序,如果它正在造成这个错误消息,我认为它根本不应该这样做,因为它根本没有调用newClass类。
的main.cpp
#include <iostream>
#include "Birthday.h"
#include "People.h"
using namespace std;
int main() {
Birthday birthObj(1,28,2000);
People sebA("Sebastian A", birthObj);
sebA.printInfo();
}
Birthday.h
#ifndef BIRTHDAY_H
#define BIRTHDAY_H
using namespace std;
class Birthday {
public:
Birthday(int m, int d, int y);
void printDate();
private:
int month;
int day;
int year;
};
#endif
Birthday.cpp
#include "Birthday.h"
#include <iostream>
using namespace std;
Birthday::Birthday(int m, int d, int y) {
month = m;
day = d;
year = y;
}
void Birthday::printDate() {
cout << day << "/" << month << "/" << year << endl;
}
People.h
#ifndef PEOPLE_H
#define PEOPLE_H
#include <string>
#include "Birthday.h"
using namespace std;
class People {
public:
People(string x, Birthday bo);
void printInfo();
private:
string name;
Birthday dateOfBirth; // dateOfBirth is an object
};
#endif
People.cpp
#include <iostream>
#include "Birthday.h"
#include "People.h"
using namespace std;
People::People(string x, Birthday bo)
: name(x), dateOfBirth(bo)
{
}
void People::printInfo(){
cout << name << " was born on ";
dateOfBirth.printDate();
}
答案 0 :(得分:0)
可能make clean
会修复它。或者至少只是明确地rm build/Debug/GNU-MacOSX/newClass.o
。
基本上,当你创建你的类并编译时,你得到一个.o
依赖它。但是一旦你删除了这个类,你的makefile中可能会有一些规则,比如
%.o : %.c
$(CC) ...
因此make
正在尝试构建newClass.o
,这取决于newClass.cpp
,而{{1}}不存在,因此您没有规则来制作它,因此错误。如果你只是删除现在不必要的目标文件,一切都应该愉快地编译。