как заставить xcode использовать правильный заголовок iostream c ++ - PullRequest
4 голосов
/ 24 декабря 2011
xcode 4.2
os x 10.7

когда я включаю мои включения, чтобы выглядеть так:

#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

Я должен использовать заголовок iostream, расположенный по адресу /Developer/SDKs/MacOSX10.7.sdk/usr/include/c++/4.2.1/

Вы должны простить меня, так как я очень плохо знаком с c ++ и еще более плохо знаком с xcode. Спасибо заранее за любую помощь.

1 Ответ

3 голосов
/ 24 декабря 2011

Определенно отключите рекурсивный поиск.Вы никогда не сможете включить заголовок повышения, не указав полный путь повышения.Большая часть Boost является своего рода тренировочной площадкой для функций, которые в конечном итоге войдут в стандарт, и поэтому существует множество заголовков Boost, которые имеют то же имя, что и стандартные заголовки.Есть также несколько заголовков, которые имеют то же имя, что и другие заголовки.Концу скорби нет конца, это вас вызовет.

...