g ++无法找到我的头文件

时间:2013-04-22 01:59:58

标签: c++ compilation g++ header-files

我正在尝试编译文件 q1.cpp ,但我一直收到编译错误:

q1.cpp:2:28: fatal error: SavingsAccount.h: No such file or directory
compilation terminated.

头文件和头文件的实现都与 q1.cpp 完全相同。

文件如下:

q1.cpp

#include <iostream>
#include <SavingsAccount.h>
using namespace std;

int main() {
    SavingsAccount s1(2000.00);
    SavingsAccount s2(3000.00);
}

SavingsAccount.cpp

#include <iostream>
#include <SavingsAccount.h>
using namespace std;

//constrauctor
SavingsAccount::SavingsAccount(double initialBalance) {
     savingsBalance = initialBalance;
}
SavingsAccount::calculateMonthlyInterest() {
     return savingsBalance*annualInterestRate/12
}
SavingsAccount::modifyInterestRate(double new_rate) {
     annualInterestRate = new_rate;
}

SavingsAccount.h

class SavingsAccount {
    public:
        double annualInterestRate;
        SavingsAccount(double);
        double calculateMonthlyInterest();
        double modifyInterestRate(double);
    private:
        double savingsBalance;
};

我想重申所有文件都在SAME目录中。我正在尝试通过在Windows命令提示符处使用此行进行编译:

 C:\MinGW\bin\g++ q1.cpp -o q1

对此问题的任何输入都将不胜感激。

1 个答案:

答案 0 :(得分:4)

 #include <SavingsAccount.h>

应该是

#include "SavingsAccount.h"

由于SavingsAccount.h是您定义的头文件,因此您不应要求编译器使用<>来搜索系统头。

同时,在编译它时,您应该编译两个cpp文件:SavingsAccount.cppq1.cpp

 g++ SavingsAccount.cpp q1.cpp -o q1 

BTW:你错过了;

SavingsAccount::calculateMonthlyInterest() {
    return savingsBalance*annualInterestRate/12;
                                    //^^; cannot miss it
}