#macos #boost #avro #zlib #macos-big-sur
#macos #повышение #avro #zlib #macos-big-sur
Вопрос:
Я пытаюсь создать avrocpp на Mac Big Sur (Mac OS 10.11) для ARM64. После установки boost и загрузки avro-cpp, когда я запускаю сборку.sh из каталога avro для сборки, получение следующей ошибки (и многих других) при DataFile.cpp выполняется компиляция avro:
**Undefined symbols for architecture arm64:
"boost::iostreams::zlib_error::check(int)", referenced from:
long boost::iostreams::symmetric_filter<boost::iostreams::detail::zlib_compressor_impl<std::__1::allocator<char> >, std::__1::allocator<char> >::write<boost::iostreams::detail::linked_streambuf<char, std::__1::char_traits<char> > >(boost::iostreams::detail::linked_streambuf<char, std::__1::char_traits<char> >amp;, char const*, long) in DataFile.o**
Все ошибки находятся в boost::iostream -> zlib compressor или decompressor
На данный момент, поскольку Homebrew не поддерживает Mac Big sur для boost (boost: исправить сборку arm64 https://github.com/Homebrew/homebrew-core/pull/59257 ) и это выдает ошибки при сборке boost zlib и avrocpp, я пытаюсь создать исходный код, но получаю ошибку, и вот что я пробовал до сих пор:
-
boost 1.74 построен с использованием architecture = arm, а также проверено, что созданные библиотеки являются arm64 (lipo -archs)
-
В каталоге avro была изменена сборка.sh изменил ‘xcode-test’ и добавил архитектуру. Вот измененная команда
xcode-тест) mkdir -p build.xcode (cd build.xcode
amp;amp; cmake -G Xcode ..
amp;amp; xcodebuild -подробные АРКИ = «arm64» ONLY_ACTIVE_ARCH = ДА -выпуск конфигурации) ;; -
Также обновите CMakeLists.txt чтобы указать на мой каталог boost. Добавлены строки:
проект (Avro-cpp) установил (Boost_NO_SYSTEM_PATHS TRUE), если (Boost_NO_SYSTEM_PATHS) установил (BOOST_ROOT «/Users/a/Downloads/boost_1_74_0») установил(Boost_DIR «/Users/a/Downloads/boost_1_74_0») установил(BOOST_INCLUDE_DIRS «${BOOST_ROOT} /boost») установить (BOOST_LIBRARY_DIRS «${BOOST_ROOT}/stage_mac32_64/lib») установить(Boost_LIBRARY_DIR_RELEASE «${BOOST_ROOT}/stage_mac32_64/lib») конечный код (Boost_NO_SYSTEM_PATHS)
-
Выполнил команду : ./build.sh xcode-test вернул ту же ошибку в boost::iostream -> zlib
-
Скачал исходный код zlib, и я попытался создать boost::iostream, указав исходный код zlib, та же ошибка. Команда:
./b2 —toolset=clang —with-iostreams —layout=versioned —build-type= complete threading= multi runtime-link= статическая архитектура= arm address-model=64 —stagedir=stage_mac32_64 этап —debug-configuration -s ZLIB_SOURCE=»/Пользователи/ a/Загрузки/zlib-1.2.11″
Если кто-нибудь пытался создать avrocpp на Mac big sur для arm64, пожалуйста, помогите.