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

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

Post by Anonymous »

Ich versuche, ein paar LIB für iOS zu erstellen, aber ich erhalte Fehler für die Sparsamkeit LIB Version 0.21.0 < /p>
Unten ist die Konfiguration, die ich verwendet, um sie zu erstellen < /p>

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 i -dbuild_shared_libs = on to -dbuild_shared_libs = off es erstellt erfolgreich, aber es erzeugt nur. Ein lib nicht. Erstellen Sie nur mit der folgenden Konfiguration.

Code: Select all

mkdir build-ios && cd build-ios


[*] Unter dem Befehl ausführen
cmake

-dcmake_toolchain_File=/users/varun/downloads/ios-cmake-master/ios.toolchain.cmake

& sub; />-DCMAKE_INSTALL_PREFIX=../install-ios

-DOPENSSL_INCLUDE_DIR={Path to openssl include dir}

-DOPENSSL_ROOT_DIR={Path to openssl (built for iOS) root dir}

-Dopensl_crypto_library = {Pfad zu Crypto lib (erstellt für iOS)} /libcrypto.1.1.dylib

-Dopenssl_SL_Library = {Path to openSSL lib (building)} /libsl.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.dylb (-brust) />-DBoost_INCLUDE_DIR={Path to boost lib(built for iOS)}/include

-DBUILD_SHARED_LIBS=ON

-DWITH_ZLIB=ON

-DWITH_C_GLIB=OFF

-DWITH_CPP=ON

-dwith_static_lib = off

..
< /li>

Code: Select all

cmake --build .  --target install --config Release
(Failed here)

[*]Check build acrh otool -L install-ios/lib/libthrift.dylib


Full code to build Thrift with boost, openssl & zlib available Thrift-CPP-IOS
Jede Hilfe oder Richtung wird

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post