Problem Linkera Clion?

0

W pliku event.h mam nagłówek konstruktora i destruktora chciałem go wywołać w event.cpp a tu coś takiego:

Undefined symbols for architecture x86_64:
  "Event::show()", referenced from:
      _main in main.cpp.o
  "Event::Event(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int, int, int, int, int)", referenced from:
      _main in main.cpp.o
  "Event::~Event()", referenced from:
      _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

W kodzie nie ma błędów ponieważ jest on z kursu Zelenta.

0

Wrzuć więcej kodu - event.h, event.cpp, pliki dla CMake.

0

Dodaj plik .cpp do projektu.

W kodzie nie ma błędów ponieważ jest on z kursu Zelenta.

hah ;D https://4programmers.net/Forum/1226486

0

event.h

#include <iostream>

using namespace std;

class Event
{
    int day, month, year;
    int hour, minutes;
    string name;

public:

    Event(string="brak",int=1,int=1,int=2015,int=12,int=0);
    ~Event();
    void load();
    void show();
};

event.cpp

#include <iostream>
#include "event.h"
using namespace std;

void Event::load()
{
    cout<<endl<<"Nazwa wydarzenia: ";
    cin>>name;
    cout<<endl<<"Dzien: ";
    cin>>day;
    cout<<endl<<"Miesiac: ";
    cin>>month;
    cout<<endl<<"Rok: ";
    cin>>year;
    cout<<endl<<"Godzina: ";
    cin>>hour;
    cout<<endl<<"Minut: ";
    cin>>minutes;
}

void Event::show()
{
    cout<<endl<<name<<" "<<day<<"."<<month<<"."<<year
        <<" "<<hour<<":"<<minutes<<endl;
}

Event::Event(string n,int d,int m,int y,int h,int mins)
{
    name=n;
    day=d;
    month=m;
    year=y;
    hour=h;
    minutes=mins;
}

Event::~Event()
{
    cout<<endl<<"To ja, destruktor sie nazywam";
}

CMakeLists.txt (mam nadzieje, że o to chodziło)

cmake_minimum_required(VERSION 3.7)
project(untitled7)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)
add_executable(untitled7 ${SOURCE_FILES})
0
set(SOURCE_FILES main.cpp)

Wskaż tu proszę event.cpp

0

O boże... Dzięki, czyli nie robi się to automatycznie i będę musiał dopisywać tam każdy plik który stworzę?

0

Nie znam CLion, ale zapewne dodałeś go w niestandardowy sposób i IDE nie wiedziało, że należy dodać go do projektu.

0

Robi się automatycznie, jeśli korzystasz z buildera klas, czy jak tam oni to nazwali (bodajże create c++ class gdzieś w menu po kliknięciu PPM na katalogu).

0

Dobra już wszystko jest jasne, dzięki chłopaki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1