我正在做一个需要我使用各种类的项目。出于某种原因,每当我尝试编译时,都会收到一条错误消息:
Undefined symbols for architecture x86_64:
我最初正在研究一个我们可以调用的类User
,它有这样的声明user.h
:
#ifndef USER_H
#define USER_H
...other include statements
class User
{
public:
User();
public and private members and functions
};
#endif
方法的定义位于同一目录中的单独文件中,user.cpp
.
每当我尝试编译时,都会收到一条错误消息,指出构造函数和析构函数存在未定义的符号。我在.cpp
文件中定义了这两个,但我无法让错误消失。
我在 main 中包含 User 类,其中包含以下内容:
#include "user.h"
我设法通过将user.cpp
文件中的所有代码粘贴到 中来解决此user.h
问题,但现在我遇到了其他类的问题,这些类的代码我不允许修改。
现在,我有一个名为 GMLReader 的类,gmlreader.h
其中包含我静态调用的方法。但是,即使我为我的 main 导入它,每当我尝试调用它时,我都会收到以下错误代码:
Undefined symbols for architecture x86_64:
"GMLReader::read(char const*, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)", referenced from:
_main in cchnzOEh.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
我正在使用以下内容进行编译以sn.cpp
容纳我的主要内容:
g++ -g -Wall -o sn sn.cpp
是否有任何原因会发生这样的错误,我该如何解决?