Makefile没有正确地允许头函数调用

时间:2017-09-01 02:43:46

标签: c++ cmake

通常我不会在这里问一些像这样的小事,但我根本无法弄清楚这里发生了什么。

我对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})

0 个答案:

没有答案