Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

"Undefined symbols for architecture arm64" – What does this mean?

I’m unable to get my code to run, and the internet doesn’t seem to know why. I’m not sure what I need to let you know, but I am using CLion if that helps.

This is my plant.h file:

#ifndef COURSEWORK_PLANT_H
#define COURSEWORK_PLANT_H

using namespace std;

class Plant {
public:
    void addGrowth();
    int getSize();
    string getName();
    Plant(string x, int y);
private:
    string plantName;
    int plantSize;
};

#endif //COURSEWORK_PLANT_H

This is my plant.cpp file:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

#include <iostream>
#include "plant.h"

using namespace std;

void Plant::addGrowth(int x) {
    plantSize += x;
    cout << "You have added " << x << " leaves to your plant. Well done!";
}

int Plant::getSize() {
    return Plant::plantSize;
}

string Plant::getName() {
    return Plant::plantName;
}

This is my main.cpp file:

#include <iostream>
#include "plant.h"

using namespace std;

int main() {
    Plant myPlant("Bugg", 2);

    return 0;
}

This is my CMakeLists.txt file:

cmake_minimum_required(VERSION 3.21)
project(Coursework)

set(CMAKE_CXX_STANDARD 14)

add_executable(Coursework main.cpp plant.h plant.cpp)

Thank you in advance for any help!

>Solution :

Undefined symbol means that the symbols is declared but not defined.

For example in the class definition you have the following member function without parameters

void addGrowth();

But then you defined a function with the same name but now with one parameter

void Plant::addGrowth(int x) {
    plantSize += x;
    cout << "You have added " << x << " leaves to your plant. Well done!";
}

So the function declared in the class definition Plant is still undefined.

Also there is no definition of the constructor

 Plant(string x, int y);

in the provided by you code.

And if you are using the name string from the standard library in the header plant.h then you need to include the header <string>

#include <string>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading