c++ - 不知所措...无法弄清楚为什么 XCode 6.1 无法编译我的 C++ 程序

标签 c++ xcode xcode6 static-linking

虽然 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/

相关文章:

c++ - 使用模板重载 + 运算符

iphone - 如何将方向箭头旋转到特定位置

xcode - 不会向内部用户发送 TestFlight 邀请电子邮件

Xcode6 无法将我的项目存档到 ipa

php - 使用 Xcode 6 应用程序加载配置文件数据

ios - UITextField 更改事件不会针对语音或粘贴输入触发

c++ - 从固定流水线转向现代 OpenGL

c++ - Qt QCompleter 不能设置它的大小?

c++ - memory_order_seq_cst 操作的 "happens before"和 "precedes in a single total order"关系有什么区别?

ios - 滚动时 Xcode TableView 滞后