关于我甚至没有的课程的错误

时间:2014-10-10 16:41:36

标签: c++ ios macos class netbeans

这是我的错误

  

“/ 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();
}

1 个答案:

答案 0 :(得分:0)

可能make clean会修复它。或者至少只是明确地rm build/Debug/GNU-MacOSX/newClass.o

基本上,当你创建你的类并编译时,你得到一个.o依赖它。但是一旦你删除了这个类,你的makefile中可能会有一些规则,比如

%.o : %.c
    $(CC) ...

因此make正在尝试构建newClass.o,这取决于newClass.cpp,而{{1}}不存在,因此您没有规则来制作它,因此错误。如果你只是删除现在不必要的目标文件,一切都应该愉快地编译。