不知所措...无法弄清楚为什么XCode 6.1无法编译我的C++程序
At a loss ... Can't figure out why XCode 6.1 won't compile my C++ program
尽管XCode在编译前没有标记任何错误,但当我实际编译它时,它会显示4。他们是
Undefined symbols for architecture i386:
"HtmlProcessor::HtmlProcessor()", referenced from:
_main in main.o
"HtmlProcessor::~HtmlProcessor()", referenced from:
_main in main.o
"DocTree::_hp", referenced from:
DocTree::setTree(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in HtmlProcessor.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我在网上上下搜索了答案。他们中的大多数都提到更改架构设置。现在我有
Architectures: Universal (32/64-bit Intel) (x86_64, i386)
Base SDK: Latest OFX (OS X 10.9)
Build Active Architecture Only: No
Supported Platforms: OSX
Valid Architectures: i386
我已经摆弄了所有东西,试图让我该死的程序编译。我什至不在乎目标架构是什么.....我正在制作这个程序是为了我自己的娱乐,并希望它在我的机器上运行,一台运行OS X 10.9.4的MacBook Pro。我只是想让这个该死的控制台程序工作。您可能会认为 XCode 将为您的程序提供默认配置以在您的计算机上运行。
以下是源文件: https://www.dropbox.com/sh/yu7tblwj14eoq1l/AAC8PfDi6la3CjE167Iz1C0da?dl=0
诺贝尔奖颁给堆栈溢出大师,他把我从这个中解救出来。
您声明了一个静态类成员,但未在任何模块中定义它:
class DocTree {
//...
static HtmlProcessor _hp;
//...
};
这需要将其包含在一个且唯一的模块中:
HtmlProcessor DocTree::_hp;
您在头文件中声明函数,但不在.cpp文件中定义(实现)它们。我在.cpp文件中找不到构造函数和析构函数的定义,尽管您在标头中有声明。然后链接器抱怨,因为它无法找到创建HtmlProcessor
实例所需的目标代码。
因此,请确保将 ctor 声明为空,例如
HtmlProcessor(){}
或完全删除声明,或使用=default
(如果使用 C++11)。
与DocTree::_hp;
的静态声明相同,您需要在某处定义它。
相关文章:
- 为什么 emscripten 不编译我的函数?
- Qt - 为什么Visual Studio 2019在qml资源中添加10Mb文件后无法再编译我的项目?
- 编译我的 3 个文件时,我收到错误,说"运算符="不匹配
- 为什么clang仍然需要libgcc.a来编译我的代码
- 为什么Visual Studio 2019不编译我的代码?
- G++ 在编译我的 flex 和 bison 代码时无法识别我的 c++ 类
- 当我编译我的程序时,它显示"分段错误(或)分段错误(核心转储)
- 当我构建和编译我的C 项目时,没有通过我的CMake文件找到正确的C 库,我在做什么错
- 尝试编译我的程序时出现 3 个链接错误
- 编译我的C++代码需要很长时间
- 当我尝试使用 makefile 编译我的 qt 程序时,它不起作用
- 初学者C - 编译我的代码时遇到困难
- 为什么 OSX Mavericks 无法编译我的 GLSL 着色器?
- 用 C::B 编译我的第一个应用程序
- 尝试编译我的 wxWidgets 程序时出错"is_enum not declared in this scope"
- 编译我的第一个c++程序时遇到问题
- 编译我的第一个C++程序时遇到问题
- Visual C++ 没有编译我的代码
- g++ 无法编译我的复杂模板实例化
- 为什么我在尝试编译我的第一个 CORBA 服务器(使用 ACE/TAO ORB 实现)时遇到链接器错误