Page 1 of 1

Undefinierte Symbole für Architektur ARM64 beim Bau von CPP -Sparsamkeit LIB für iOS

Posted: 12 Feb 2025, 09:17
by Guest
Ich versuche, ein paar LIB für iOS zu erstellen, aber ich erhalte Fehler für die Sparsamkeit LIB Version 0.21.0
Unten ist die Konfiguration, die ich zum Erstellen von

Code: Select all

ExternalProject_Add(thrift
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/${THRIFT_DIR}
INSTALL_DIR ${THIRDPARTY_INSTALL_DIR}
CMAKE_ARGS ${EXTERNAL_PROJECT_CMAKE_ARGS}
-DOPENSSL_ROOT_DIR=${OPENSSL_INSTALL_DIR}
-DOPENSSL_CRYPTO_LIBRARY=${OPENSSL_INSTALL_DIR}/lib/libcrypto.a
-DOPENSSL_SSL_LIBRARY=${OPENSSL_INSTALL_DIR}/lib/libssl.a
-DBoost_INCLUDE_DIR=${BOOST_INCLUDE_DIR}
-DWITH_ZLIB=${ZLIB_INSTALL_DIR}
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a"
-DBUILD_SHARED_LIBS=ON
-DBUILD_JAVA=OFF
-DBUILD_JAVASCRIPT=OFF
-DBUILD_NODEJS=OFF
-DBUILD_PYTHON=OFF
-DBUILD_PY3=OFF
-DBUILD_QT=OFF
-DBUILD_QT4=OFF
-DBUILD_RUBY=OFF
-DBUILD_PHP=OFF
-DBUILD_SWIFT=OFF
-DBUILD_TESTING=OFF

BUILD_COMMAND make clean && make CFLAGS+=-DOPENSSL_NO_SSL3 CFLAGS+=-fPIC CXXFLAGS+=-DOPENSSL_NO_SSL3 CXXFLAGS+=-fPIC
INSTALL_COMMAND make install
)
< /code>
Ich erhalte Fehler < /p>
[ 93%] Linking CXX shared library ../libthriftz.dylib
cd /Users/Technaharia/Downloads/Demo/build-ios/SDKThirdParty-prefix/src/SDKThirdParty-build/thrift-prefix/src/thrift-build/lib/cpp && /Applications/CMake.app/Contents/bin/cmake -E cmake_link_script CMakeFiles/thriftz.dir/link.txt --verbose=1
Undefined symbols for architecture arm64:
"apache::thrift::GlobalOutput", referenced from:
apache::thrift::transport::TZlibTransport::checkZlibRvNothrow(int, char const*) in TZlibTransport.cpp.o
"apache::thrift::protocol::TProtocol::skip_virt(apache::thrift::protocol::TType)", referenced from:
vtable for apache::thrift::protocol::TProtocolDefaults in THeaderProtocol.cpp.o
"apache::thrift::protocol::TProtocol::~TProtocol()", referenced from:
std::__1::__shared_ptr_emplace::~__shared_ptr_emplace() in THeaderProtocol.cpp.o
std::__1::__shared_ptr_emplace::~__shared_ptr_emplace() in THeaderProtocol.cpp.o
apache::thrift::protocol::TBinaryProtocolT::~TBinaryProtocolT() in THeaderProtocol.cpp.o
Aber wenn ich -dbuild_shared_libs = on to -dbuild_shared_libs = off erfolgreich erstellt, wird jedoch nur erstellt. Eine lib nicht .dylib, die für eine andere Lib erforderlich ist
Der vollständige Code ist bei DemoApp
Jede Hilfe oder Richtung wird