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
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
[*]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