【问题标题】:How to include <cstring> in a Cocoa project如何在 Cocoa 项目中包含 <cstring>
【发布时间】:2013-10-21 06:44:06
【问题描述】:

我无法让 xcode 找到特定的头文件,即 cstring

我的项目编译正确,直到我添加了一个新库。库 oscpack 由 .h 和 .cpp 文件组成。我将这些复制到我的项目中。其中一些文件包括cstring。现在,当我尝试编译时,出现此错误:

Lexical or Preprocessor Issue
(...)/xcode4/osc/OscOutboundPacketStream.h:40:10: 'cstring' file not found

我是 C++ 新手,但对于头文件的位置,我仍然有些迷惑。有谁知道在我的系统上哪里可以找到cstring,以及我应该如何告诉 xcode 在那里寻找它?

编辑

我跑了sudo find . -name "*cstring*"并找到了头文件。在这里:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/c++/4.2.1/cstring

现在我如何告诉 XCode 在那里搜索?

编辑 2

我尝试将$(SDKROOT)/usr/include/c++/4.2.1 添加到我的标题搜索路径中。我进入了一个痛苦的世界。从这些开始,引发了数十个编译器错误。

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/c++/4.2.1/bits/c++config.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/c++/4.2.1/bits/c++config.h:153:1: Unknown type name 'namespace'
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/c++/4.2.1/bits/c++config.h:153:1: Expected ';' after top level declarator

【问题讨论】:

  • cstring 将位于编译器已经知道要搜索的系统头文件位置。它甚至可能与&lt;iostream&gt;&lt;algorithm&gt; 在同一目录中。所以问题不是为编译器添加正确的搜索路径这样简单的问题;您的构建环境或 oscpack 库存在更深层次的问题。
  • 嗯。好的。我可以使用make 从命令行编译oscpack,所以我认为问题出在我的构建环境上。您对如何解决问题有什么想法吗?
  • 看看一个干净的项目是否会构建#include &lt;cstring&gt; \n int main() {},看看使用的完整构建命令并进行比较。我真的无法提供比这更详细的信息了。
  • 好的,谢谢。我会试试这个并报告。
  • @bames53 我注意到#include &lt;cstring&gt; 在基于命令行工具模板的新项目中运行良好,但如果项目基于 Cocoa 应用程序模板,它就无法运行。我正在更新问题标题以反映这个问题似乎特定于 Cocoa 项目而不是一般 XCode 项目的事实。

标签: c++ xcode cocoa osx-mountain-lion osc


【解决方案1】:

&lt;cstring&gt; 是 C++ 标头。问题是您构建的文件包含 C 或 Objective-C 而不是 C++ 或 Objective-C++?

oscpack 将自己描述为 C++ 库,因此您需要在包含其标头的任何地方使用 C++。

【讨论】:

  • 谢谢,这正是问题所在。包含 的文件有一个 .m 后缀;将其重命名为 .mm 修复了预处理器错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 2013-01-18
  • 2019-11-05
  • 2017-07-17
  • 2014-08-14
相关资源
最近更新 更多