"Undefined symbols for architecture arm64" - 这是什么意思?
"Undefined symbols for architecture arm64" - What does this mean?
我无法将我的代码获取到 运行,互联网似乎不知道为什么。我不确定我需要让您知道什么,但如果有帮助,我正在使用 CLion。
这是我的 plant.h 文件:
#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
这是我的 plant.cpp 文件:
#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;
}
这是我的 main.cpp 文件:
#include <iostream>
#include "plant.h"
using namespace std;
int main() {
Plant myPlant("Bugg", 2);
return 0;
}
这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.21)
project(Coursework)
set(CMAKE_CXX_STANDARD 14)
add_executable(Coursework main.cpp plant.h plant.cpp)
提前感谢您的帮助!
未定义符号表示符号已声明但未定义。
例如,在 class 定义中,您有以下不带参数的成员函数
void addGrowth();
但是你定义了一个同名的函数,但现在只有一个参数
void Plant::addGrowth(int x) {
plantSize += x;
cout << "You have added " << x << " leaves to your plant. Well done!";
}
因此class定义Plant中声明的函数仍然未定义。
也没有定义构造函数
Plant(string x, int y);
在您提供的代码中。
如果您在 header plant.h
中使用标准库中的名称 string
,那么您需要包含 header <string>
#include <string>
我无法将我的代码获取到 运行,互联网似乎不知道为什么。我不确定我需要让您知道什么,但如果有帮助,我正在使用 CLion。
这是我的 plant.h 文件:
#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
这是我的 plant.cpp 文件:
#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;
}
这是我的 main.cpp 文件:
#include <iostream>
#include "plant.h"
using namespace std;
int main() {
Plant myPlant("Bugg", 2);
return 0;
}
这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.21)
project(Coursework)
set(CMAKE_CXX_STANDARD 14)
add_executable(Coursework main.cpp plant.h plant.cpp)
提前感谢您的帮助!
未定义符号表示符号已声明但未定义。
例如,在 class 定义中,您有以下不带参数的成员函数
void addGrowth();
但是你定义了一个同名的函数,但现在只有一个参数
void Plant::addGrowth(int x) {
plantSize += x;
cout << "You have added " << x << " leaves to your plant. Well done!";
}
因此class定义Plant中声明的函数仍然未定义。
也没有定义构造函数
Plant(string x, int y);
在您提供的代码中。
如果您在 header plant.h
中使用标准库中的名称 string
,那么您需要包含 header <string>
#include <string>