Chu*_*Chu 0 c++ reference kdevelop
我是 C++ 初学者。我写了以下内容:
// GradeBook.h
#include <iostream>
#include <string>
using namespace std;
class GradeBook {
public:
GradeBook(string); // constructor that initializes courseName
void setCourseName(string); // function that sets the course name
string getCourseName(); // function that gets the course name
void displayMessage(); // function that displays a welcome message
private:
string courseName; // course name for this GradeBook
};
// GradeBook.cpp
#include <iostream>
#include "GradeBook.h"
using namespace std;
GradeBook::GradeBook(string name)
{
setCourseName(name);
}
void GradeBook::setCourseName(string name)
{
courseName = name;
}
string GradeBook::getCourseName()
{
return courseName;
}
void GradeBook::displayMessage()
{
cout << "Welcome to the grade book for\n" << getCourseName() << "!" << endl;
}
// main.cpp
#include <iostream>
#include "GradeBook.h"
using namespace std;
int main()
{
GradeBook gradeBook1("CS101 Introduction to C++ Programming");
GradeBook gradeBook2("CS102 Data Structures in C++");
cout << "gradeBook1 created for course: " << gradeBook1.getCourseName()
<< "\ngradeBook2 created for course: " << gradeBook2.getCourseName()
<< endl;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 KDevelop 4.4.1,然后我继续执行我的 main.cpp 并得到:
/home/brallan/projects/Hola/build> make
链接 CXX 可执行文件 hola
CMakeFiles/hola.dir/main.o:在函数 main' 中:
/home/brallan/projects/Hola/main.cpp:8:对 GradeBook 的未定义引用::GradeBook(std::string)'
/home/brallan/projects/Hola/main.cpp:9:对 GradeBook::GradeBook(std::string)'
/home/brallan/projects/Hola/main 的未定义引用。 cpp:12: 对 GradeBook::getCourseName()' 的未定义引用'
/home/brallan/projects/Hola/main.cpp:11: 对 GradeBook::getCourseName()' 的未定义引用'
collect2: 错误:ld 返回 1 退出状态
make[ 2]: [hola] 错误 1
make[1]: [CMakeFiles/hola.dir/all] 错误 2
make: [all] 错误 2
失败
如果我从 Eclipse Juno CDT 运行相同的代码,它会返回:
gradeBook1 created for course: CS101 Introduction to C++ Programming
gradeBook2 created for course: CS102 Data Structures in C++
Run Code Online (Sandbox Code Playgroud)
谁能帮我从 KDevelop 运行它?
更新:根据评论,KDevelop 没有编译项目中的其他文件:我想这是需要解决的问题。
首先,将该行#error(或任何其他语法错误)添加到 GradeBook.cpp 的末尾。确保在尝试构建该行时收到该行的编译错误。如果不是,请检查项目或 makefile 中文件引用的拼写和大小写。
如果确实出现语法错误,或者没有出现但无法弄清楚为什么未引用该文件,请尝试执行以下操作:#error从 GradeBook.cpp 中删除 ,并将其添加#include "GradeBook.cpp"到 main.cpp 的末尾。这有两个目的:它让您继续前进(现在应该能够构建和运行),并且它有助于缩小问题范围(如果它有效,您就知道问题出在引用 GradeGook.cpp 上,而不是其内容上)。