虽然 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
诺贝尔奖颁给了 Stack Overflow 大师,他帮助我摆脱了困境。
最佳答案
您声明了一个静态类成员,但没有在任何模块中定义它:
class DocTree {
//...
static HtmlProcessor _hp;
//...
};
这需要将其包含在一个且仅有一个模块中:
HtmlProcessor DocTree::_hp;
关于c++ - 不知所措...无法弄清楚为什么 XCode 6.1 无法编译我的 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26953847/