Проект компилируется успешно, но происходит сбой на этапе связывания.
Ошибка:
Код: Выделить всё
Undefined symbol: std::__1::__libcpp_deallocate[abi:ne180100](void*, unsigned long, unsigned long)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Код: Выделить всё
Undefined symbols for architecture arm64:
"std::__1::__libcpp_deallocate[abi:ne180100](void*, unsigned long, unsigned long)", referenced from:
NitroScreenRecorder.Func_void_std__optional_ScreenRecordingFile_.call(value: __C.std.__1.optional) -> () in libNitroScreenRecorder.a
- Xcode: 16.2
- macOS: 15.x
- Проект React Native
- CocoaPods
- Цель развертывания: iOS 16.0
- Стандарт C++: C++20
- Архитектура: Arm64
Код: Выделить всё
NitroScreenRecorderКод: Выделить всё
libNitroScreenRecorder.aPodfile (соответствующая часть):
Код: Выделить всё
platform :ios, '16.0'
target 'ATHELIA' do
use_expo_modules!
$config = use_native_modules!
pod 'FirebaseCoreInternal', :modular_headers => true
pod 'GoogleUtilities', :modular_headers => true
use_frameworks! :linkage => :static
$RNFirebaseAsStaticFramework = true
use_react_native!(
:path => $config[:reactNativePath],
:hermes_enabled => true
)
end
Код: Выделить всё
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++20'
config.build_settings['CLANG_CXX_LIBRARY'] = 'libc++'
config.build_settings['ENABLE_CPP_LIBRARY_HARDENING'] = 'NO'
end
end
- Очистка производных данных
- Удаление модулей и переустановка ()
Код: Выделить всё
rm -rf Pods Podfile.lock && pod install - Обеспечение единообразия цели развертывания во всех модулях.
- Принудительное использование C++20 в Podfile post_install.
- Проверка диалекта C++ в настройках сборки Xcode.
Код: Выделить всё
std::__1::__libcpp_deallocate[abi:ne180100]
Вопрос:
Что может вызвать std::__1::__libcpp_deallocate[abi:ne180100] будет неопределенным во время компоновки в Xcode 16?
Связано ли это с:
- изменениями ABI libc++ в Xcode 16
- Несоответствием стандартов C++ между модулями
- статической библиотекой, скомпилированной с другой Toolchain
Подробнее здесь: https://stackoverflow.com/questions/799 ... -native-io
Мобильная версия