2015-02-24 4 views
3

Недавно я начал работать с Boost для Windows для проекта. Он должен быть кросс-платформенным, поэтому я также установил его на Mac. К сожалению; всякий раз, когда я добавляю его в проект Xcode, он дает мне большое количество ссылок-ошибок и предупреждений о конверсиях.Ошибки компоновщика с Boost на Mac (OSX 10.10.02 | Xcode 6.1.1)

Пример одного из линкер-ошибок:

Undefined symbols for architecture x86_64:
"boost::system::system_category()", referenced from: ___cxx_global_var_init2 in main.o boost::asio::error::get_system_category() in main.o boost::system::error_code::error_code() in main.o "boost::system::generic_category()", referenced from: ___cxx_global_var_init in main.o ___cxx_global_var_init1 in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

примере одного из конверсионных-предупреждений:

In file included from /usr/local/Cellar/boost/1.57.0/include/boost/date_time/posix_time/posix_time_types.hpp:16: /usr/local/Cellar/boost/1.57.0/include/boost/date_time/posix_time/posix_time_duration.hpp:24:21: warning: implicit conversion loses integer precision: 'long' to 'hour_type' (aka 'int') [-Wshorten-64-to-32] time_duration(h,0,0)

Я попробовал несколько способов установки и методы конфигурации, но это все равно не будет Работа.

Это мои шаги:

  1. Compile подталкивания или получить скомпилированную версию Boost.
  2. Создайте проект XCode.
  3. Введите this Пример кода в основном классе.
  4. Добавить путь к заголовку и библиотеке в файл проекта Xcode.
  5. Строительство.

опции компиляции я попытался:

  • Компиляция из источника с помощью the official guide.
  • Компиляция из исходного кода с помощью нескольких сценариев, которые я нашел здесь, в Stackoverflow.
  • Установка менеджера упаковки для пива и загрузка пакета с помощью двоичных файлов.

Варианты конфигурации Я попытался:

  1. Настройка поиска заголовка путь к /usr/local/Cellar/boost/1.57.0/include или их эквивалентов и установки пути поиска библиотек в/USR /local/Cellar/boost/1.57.0/lib или эквиваленты.
  2. Настройка только пути поиска заголовка, но не пути к библиотеке.
  3. Вариант 1, но рекурсивный (вызывает больше ошибок).

Я был бы признателен, если бы кто-то мог указать мне в правильном направлении. Я думаю, что это связано с Xcode, поскольку все скомпилированные версии дают мне те же ошибки.

ответ

3

Я нашел ответ. После того, как пути заголовка и библиотеки добавлены в пути поиска проектов, вам нужно перейти к «Построение фаз». Там вам нужно добавить отдельные библиотеки, которые вам нужны, в подраздел «библиотеки ссылок на двоичные». Вы можете найти необходимые файлы в папке lib (в папке boost).

Вы можете выбрать файлы библиотеки с расширением .a или с расширением .mt.dylib. Если вы выберете файлы расширения .a, библиотека будет добавлена ​​в скомпилированную версию вашей программы. Если вы выберете файлы .mt.dylib, то библиотеки не будут добавлены в вашу скомпилированную программу. В этом случае вы предполагаете, что файлы динамической библиотеки уже присутствуют на компьютере, на котором запущена программа.

Смежные вопросы