如何强制xcode使用正确的iostream头文件

how to force xcode to use the correct iostream header c++

本文关键字:iostream 文件 何强制 xcode      更新时间:2023-10-16
xcode 4.2
os x 10.7

当我把include设置成如下的样子时:

#include <iostream>
#include <boost/thread.hpp>

我从位于/opt/local/include/boost/tr1/tr1

的文件中得到以下错误
Lexical or Preprocessor Issue
'boost/tr1/detail/config_all.hpp' file not found

/opt/local/include/boost/tr1/tr1/iostream文件内容:

//  (C) Copyright John Maddock 2005.
//  Use, modification and distribution are subject to the
//  Boost Software License, Version 1.0. (See accompanying file
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
//  This file exists to prevent std lib headers from accidentally
//  including a TR1 extention header; we must suppress this otherwise
//  we can end up with cyclic dependencies with some std lib implementations.
//
#ifndef BOOST_TR1_iostream_INCLUDED
#  define BOOST_TR1_iostream_INCLUDED
#  ifndef BOOST_TR1_NO_RECURSION
#     define BOOST_TR1_NO_RECURSION
#     define BOOST_TR1_NO_iostream_RECURSION
#  endif
#  include <boost/tr1/detail/config_all.hpp>
#  if defined(BOOST_HAS_INCLUDE_NEXT) && !defined(BOOST_TR1_DISABLE_INCLUDE_NEXT)
#     include_next <iostream>
#  else
#     include BOOST_TR1_STD_HEADER(iostream)
#  endif
#  ifdef BOOST_TR1_NO_iostream_RECURSION
#     undef BOOST_TR1_NO_iostream_RECURSION
#     undef BOOST_TR1_NO_RECURSION
#  endif
#endif

我应该使用位于/Developer/SDKs/MacOSX10.7.sdk/usr/include/c++/4.2.1/的iostream标头

你必须原谅我,因为我对c++很陌生,对xcode更陌生。提前感谢您的任何帮助。

一定要关闭递归搜索。在没有指定完整的boost路径的情况下,永远不能包含boost头文件。Boost的大部分功能都是一个训练基地,这些功能最终会进入标准,因此有大量的Boost头文件与标准头文件共享相同的名称。还有一堆boost头与其他boost头共享相同的名称。这会给你带来无尽的悲伤。