C++ C++;多个类会导致架构错误
我正在从事一个需要使用各种类的项目。 出于某种原因,每当我尝试编译时,都会出现一个错误,上面写着:C++ C++;多个类会导致架构错误,c++,class,importerror,C++,Class,Importerror,我正在从事一个需要使用各种类的项目。 出于某种原因,每当我尝试编译时,都会出现一个错误,上面写着: 架构x86\u 64的未定义符号: 我最初正在编写一个类,我们可以称之为User,它在User.h中有这样一个声明: #ifndef USER_H #define USER_H ...other include statements class User { public: User(); public and private members and functions
架构x86\u 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
文件中定义了这两个,但我无法消除错误
我主要包括以下用户类:
#include "user.h"
通过将user.cpp
文件中的所有代码粘贴到user.h
中,我成功地解决了这个问题,但现在我遇到了其他类的问题,这些类的代码我不允许修改
现在,我在GMLReader.h
中有一个名为GMLReader的类,其中有一个方法是静态调用的。然而,即使我正在为我的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
出现这种错误有什么原因吗?我如何着手修复它?您还需要编译并链接user.cpp:
g++ -g -Wall -c user.cpp -o user.o
g++ -g -Wall -o sn sn.cpp user.o
我以前经常遇到这个错误,请确保您将正确类型的变量传递给函数您的目标体系结构确实是64位的吗?可能是一些文件编译为32位,而另一些文件编译为64位。另外,请向我们展示
#include
语句以及您是如何编译代码的。您没有展示相关代码,请展示真实的代码我以前见过这个问题,我认为它与体系结构无关。这很像一个未解决的外部问题。似乎找不到GMLReader::read。谢谢。习惯于有一个Makefile,而不必提供所有这些参数,但现在一切都正常了
g++ -g -Wall -c user.cpp -o user.o
g++ -g -Wall -o sn sn.cpp user.o