Open dinbtechit opened 1 year ago
updated the build_ios.sh
to include arm64 simulator.
. . .
ARCHS=${ARCHS:-"armv7 armv7s arm64 x86_64 arm64-sim"}
. . .
arm64-sim)
PLATFORM="iPhoneSimulator"
HOST="arm64-apple-darwin"
export BASEDIR="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
export ISDKROOT="${BASEDIR}/SDKs/${PLATFORM}.sdk"
export CXXFLAGS="${OTHER_CXXFLAGS}"
export CPPFLAGS="-arch arm64 -isysroot ${ISDKROOT} ${OTHER_CPPFLAGS}"
export LDFLAGS="-arch arm64 ${OTHER_LDFLAGS}"
;;
and managed to build static libs for the simulator.
export LIBZMQ_LIB_DIR=/<path_to>/libzmq/builds/ios/libzmq_build/arm64-ios/lib
export LIBZMQ_INCLUDE_DIR=/<path_to>/libzmq/builds/ios/libzmq_build/arm64-ios/include
# Build project
cargo build -r --target=aarch64-apple-ios-sim
But getting a symbol linking error:
zmq::socket_base_t::create(int, zmq::ctx_t*, unsigned int, int) in libzmq.a(libzmq_la-socket_base.o)
zmq::socket_base_t::socket_base_t(zmq::ctx_t*, unsigned int, int, bool) in libzmq.a(libzmq_la-socket_base.o)
zmq::socket_base_t::~socket_base_t() in libzmq.a(libzmq_la-socket_base.o)
zmq::scoped_lock_t::~scoped_lock_t() in libzmq.a(libzmq_la-socket_base.o)
...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Full log:
Issue description
How to build libzmq for
aarch64-apple-ios-sim
(IOS Simulator on M1)?Environment
Minimal test code / Steps to reproduce the issue
Run ios build
output: which generates![image](https://user-images.githubusercontent.com/17984781/216492845-c893e669-a4a8-4505-868e-cc1bd338fba6.png)
libs
andinclude
packages for all platforms except aarch64-apple-ios-simUsing aarm64/libzmq.a package to build my rust project. I get the following error
Build project
cargo build -r --target=aarch64-apple-ios-sim
. . .building for iOS Simulator, but linking in object file built for iOS . . .
"-Wl,-syslibroot" "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator16.2.sdk" "-L" "/Users/srinivad/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/aarch64-apple-ios-sim/lib" "-o" "/Users/srinivad/code/personal/aries_vcx/target/aarch64-apple-ios-sim/release/deps/libindy_vdr-5aa23635579223af.dylib" "-Wl,-dead_strip" "-dynamiclib" "-Wl,-dylib" "-nodefaultlibs" = note: ld: in /Users/srinivad/code/personal/libzmq/builds/ios/libzmq_build/arm64/lib/libzmq.a(libzmq_la-address.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/srinivad/code/personal/libzmq/builds/ios/libzmq_build/arm64/lib/libzmq.a' clang: error: linker command failed with exit code 1 (use -v to see invocation)