2015-07-15 6 views
1

Я использую проекты библиотеки C++ (который использует библиотеку boost 1.57) для моего приложения ios, и когда я создаю свое приложение, я получаю сотни предупреждений о компоновщиках. Приложение работает отлично.Предупреждения компоновщика в xcode 6.4

Видный предупреждение

ld: warning: direct access in boost::exception_ptr boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_exception_>() to global weak symbol boost::exception_ptr boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_exception_>()::ep means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. 

Как я могу избавиться от этих предупреждений линкера? Любой возможный способ, кроме подавления?

Благодаря

ответ

2

Я избавилась от этих предупреждений линкера путем изменения «Символы скрыты по умолчанию» на «Да» и «Методы Инлайн Hidden» в «YES» в настройках сборки Xcode.

Библиотека ускорения для iOS была построена с помощью -fvisibility = hidden -fvisibility-inlines-hidden flags и настроек сборки xcode была установлена ​​видимость символов YES. Следовательно, были предупреждения о несоответствиях и компоновщиках.

+0

Это работает для отладочной сборки? Я нахожу, что компилятор для меня не передает '-fvisibility = hidden', если я не создаю конфигурацию Release ... любые идеи/мысли? – dnkoutso