通常我不会在这里问一些像这样的小事,但我根本无法弄清楚这里发生了什么。
我对C ++很陌生,我只是尝试从我的头类继承方法,在.cpp类中定义它们,然后在我的main方法中使用它们,但由于某种原因我的代码将无法编译
我正在使用CLion v2017.2,它在项目创建时创建了自己的makefile,所以我不确定这是否会导致问题,但我可以提供它以保持清晰。这是我的代码:
Note.h
#include <string>
class Note {
private:
std::string title, body;
int id;
public:
Note();
Note(int id, std::string title, std::string body);
void displayMenu();
};
Note.cpp
#include <iostream>
#include "Note.h"
void Note::displayMenu() {
std::cout << "Note taker deluxe" << std::endl;
}
的main.cpp
#include <iostream>
#include "Note.h"
int main() {
Note n;
n.displayMenu();
// std::cout << "Hello world" << std::endl; this code works
}
这是我得到的错误
Undefined symbols for architecture x86_64:
"Note::displayMenu()", referenced from:
_main in main-f9b212.o
"Note::Note()", referenced from:
_main in main-f9b212.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
提前致谢,请原谅我,如果这是一个简单的问题,我真的一直试图解决这个问题几天。
编辑:添加正确的Makefile
cmake_minimum_required(VERSION 3.8)
project(fuck_c__)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp Note.cpp Note.h)
add_executable(fuck_c__ ${SOURCE_FILES})