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