当我整合libcurl时,遇到以下问题 架构i386的未定义符号:
"_SSLClose", referenced from:
_Curl_darwinssl_close in libcurl.a(libcurl_la-curl_darwinssl.o)
"_SSLCopyPeerTrust", referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
"_SSLCreateContext", referenced from:
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
_darwinssl_connect_common in libcurl.a(libcurl_la-curl_darwinssl.o)
_Curl_darwinssl_close in libcurl.a(libcurl_la-curl_darwinssl.o)
"_SSLGetBufferedReadSize", referenced from:
答案 0 :(得分:0)
您添加的libcurl.a
静态库适用于设备。您正在尝试为模拟器构建应用程序(i386适用于Mac)。更改您的libcurl.a
或构建您的Device应用程序可以解决您的问题。
答案 1 :(得分:0)
我曾经用另一个库运行这个问题。问题是模拟器在x86处理器上运行而实际设备在ARM上运行,实际上你需要在项目中使用两个独立的库构建。一个用于模拟器,一个用于ARM。如果您的目标是ARM-64,那么您也需要构建它。
答案 2 :(得分:0)
在您的运行脚本中替换它...希望这将解决
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
xcodebuild -target GEOAuthAuthentication ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target GEOAuthAuthentication -configuration ${CONFIGURATION} -sdk iphonesimulator -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target GEOAuthAuthentication -configuration ${CONFIGURATION} -sdk iphonesimulator -arch x86_64 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" TARGET_BUILD_DIR="./build-x86_64"
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" "./build-x86_64/lib${PROJECT_NAME}.a"
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/include" "${UNIVERSAL_OUTPUTFOLDER}/"
答案 3 :(得分:0)
签入您的目标 - >构建阶段 - > Link Binary With Libraries是所有必需的框架和库添加