Я пытался начать разработку Boost на своем Macbook с MacOS Catalina (OSX 10.15). Ниже приведена ссылка на файл example.cpp на странице Boost Getting Started on Unix Variants:
Ссылка: https://www.boost.org/doc/libs/1_71_0/more/getting_started/unix-variants.html#boost-root-directory
Я также предоставлю код прямо здесь:
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << " " );
}
При компиляции на терминале я получаю следующие ошибки:
In file included from example1.cpp:1:
In file included from /Users/sharvankumar/boost_1_71_0/boost/lambda/lambda.hpp:23:
In file included from /Users/sharvankumar/boost_1_71_0/boost/lambda/detail/operator_return_type_traits.hpp:24:
In file included from /Users/sharvankumar/boost_1_71_0/boost/detail/container_fwd.hpp:98:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/complex:246:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:313:9: error:
no member named 'signbit' in the global namespace
using ::signbit;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:314:9: error:
no member named 'fpclassify' in the global namespace
using ::fpclassify;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:315:9: error:
no member named 'isfinite' in the global namespace; did you mean 'finite'?
using ::isfinite;
~~^
/usr/local/include/math.h:749:12: note: 'finite' declared here
extern int finite(double)
^
In file included from example1.cpp:1:
In file included from /Users/sharvankumar/boost_1_71_0/boost/lambda/lambda.hpp:23:
In file included from /Users/sharvankumar/boost_1_71_0/boost/lambda/detail/operator_return_type_traits.hpp:24:
In file included from /Users/sharvankumar/boost_1_71_0/boost/detail/container_fwd.hpp:98:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/complex:246:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:316:9: error:
no member named 'isinf' in the global namespace
using ::isinf;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:317:9: error:
no member named 'isnan' in the global namespace
using ::isnan;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:318:9: error:
no member named 'isnormal' in the global namespace
using ::isnormal;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:319:7: error:
no member named 'isgreater' in the global namespace; did you mean '::std::greater'?
using ::isgreater;
^~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:720:29: note:
'::std::greater' declared here
struct _LIBCPP_TEMPLATE_VIS greater : binary_function<_Tp, _Tp, bool>
^
In file included from example1.cpp:1:
In file included from /Users/sharvankumar/boost_1_71_0/boost/lambda/lambda.hpp:23:
In file included from /Users/sharvankumar/boost_1_71_0/boost/lambda/detail/operator_return_type_traits.hpp:24:
In file included from /Users/sharvankumar/boost_1_71_0/boost/detail/container_fwd.hpp:98:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/complex:246:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:320:7: error:
no member named 'isgreaterequal' in the global namespace; did you mean '::std::greater_equal'?
using ::isgreaterequal;
^~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:749:29: note:
'::std::greater_equal' declared here
struct _LIBCPP_TEMPLATE_VIS greater_equal : binary_function<_Tp, _Tp, bool>
^
In file included from example1.cpp:1:
In file included from /Users/sharvankumar/boost_1_71_0/boost/lambda/lambda.hpp:23:
In file included from /Users/sharvankumar/boost_1_71_0/boost/lambda/detail/operator_return_type_traits.hpp:24:
In file included from /Users/sharvankumar/boost_1_71_0/boost/detail/container_fwd.hpp:98:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/complex:246:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:321:9: error:
no member named 'isless' in the global namespace
using ::isless;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:322:9: error:
no member named 'islessequal' in the global namespace
using ::islessequal;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:323:9: error:
no member named 'islessgreater' in the global namespace
using ::islessgreater;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:324:9: error:
no member named 'isunordered' in the global namespace
using ::isunordered;
~~^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath:325:9: error:
no member named 'isunordered' in the global namespace
using ::isunordered;
~~^
13 errors generated.
Теперь, после большого количества поисков в Google, чтения сообщений на StackOverflow и на форуме разработчиков Apple, я пришел к выводу, что существует некоторая проблема с заголовочными файлами cmath и math.h в Xcode, которая вызывает эту проблему. До OSX 10.14 для этого было исправление, которое заключалось в установке пакета macOS_SDK_headers_for_macOS_10.14.pkg, который устанавливал необходимые заголовки в базовой системе. Но начиная с Каталины, они удалили этот пакет.
Теперь, пока Apple не предоставит обходной путь для этого, мне было интересно, могу ли я получить какую-либо помощь, специфичную для Boost? Единственный другой вариант — понизить версию моей MacOS, но я ищу более простой вариант. Любая помощь приветствуется.
Я могу вам сказать, что это не имеет ничего общего с Boost, поэтому здесь не будет ничего специфичного для Boost. Я знаю, как это исправить, потому что мне пришлось это сделать несколько недель назад, но мне нужно помнить … — person Bhargav Varshney schedule 09.12.2019
Было бы полезно, если бы вы объяснили, как вы это строите. Командная строка? Или из IDE? Используете встроенную систему сборки или CMake? — person Bhargav Varshney schedule 09.12.2019
@LightnessRaceswithMonica я использую командную строку — person Bhargav Varshney schedule 09.12.2019
Пожалуйста, будьте конкретны. Не только я использую командную строку. Приведите точные шаги. Фактический текст. Представьте, что компьютеры сложные и что я не вижу ваш экран отсюда. — person Bhargav Varshney schedule 09.12.2019
@Botje, да, это так !! Благодаря тонну! — person Bhargav Varshney schedule 09.12.2019