iphone – 在Xcode中作为“运行脚本”阶段运行时,OpenSSL构建脚本失败(在Xcode之外成功)

iphone – 在Xcode中作为“运行脚本”阶段运行时,OpenSSL构建脚本失败(在Xcode之外成功),第1张

概述我正在尝试运行一个脚本来构建iOS的OpenSSL(armv6,armv7和i386)作为 Xcode中的“运行脚本”阶段. 从命令行作为独立脚本运行时,脚本成功构建.结果是编译的libcrypto.a,libssl.a和包含头文件的目录. 但是,当我在Xcode中将脚本作为运行脚本阶段运行时,它会在make和错误结束时说明它无法找到libcrypto引用的任何符号. shlib_target=; 我正在尝试运行一个脚本来构建iOS的OpenSSL(armv6,armv7和i386)作为 Xcode中的“运行脚本”阶段.

从命令行作为独立脚本运行时,脚本成功构建.结果是编译的libcrypto.a,libssl.a和包含头文件的目录.

但是,当我在Xcode中将脚本作为运行脚本阶段运行时,它会在make和错误结束时说明它无法找到libcrypto引用的任何符号.

shlib_target=; if [ -n "" ]; then \        shlib_target="bsd-gcc-shared"; \    fi; \    liBRARIES="-L.. -lssl  -L.. -lcrypto" ; \    make -f ../Makefile.shared -e \        APPname=openssl OBJECTS="openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o genpkey.o s_server.o s_clIEnt.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_ID.o ciphers.o nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o CMS.o rand.o engine.o ocsp.o prime.o ts.o" \        liBDEPS=" $liBRARIES " \        link_app.${shlib_target}( :; liBDEPS="${liBDEPS:--L.. -lssl  -L.. -lcrypto }"; LDCMD="${LDCMD:-/Applications/Xcode.app/Contents/Developer/Platforms/iPhonesimulator.platform/Developer/usr/bin/gcc -arch i386}"; LDFLAGS="${LDFLAGS:--isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhonesimulator.platform/Developer/SDKs/iPhonesimulator5.0.sdk  -DOPENSSL_THREADS -pthread -D_THREAD_SAFE -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIOS -O3 -fomit-frame-pointer -Wall}"; liBPATH=`for x in $liBDEPS; do echo $x; done | sed -e 's/^ *-L//;t' -e d | uniq`; liBPATH=`echo $liBPATH | sed -e 's/ /:/g'`; LD_liBRARY_PATH=$liBPATH:$LD_liBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPname:=openssl} openssl.o verify.o asn1pars.o req.o dgst.o dh.o dhparam.o enc.o passwd.o gendh.o errstr.o ca.o pkcs7.o crl2p7.o crl.o rsa.o rsautl.o dsa.o dsaparam.o ec.o ecparam.o x509.o genrsa.o gendsa.o genpkey.o s_server.o s_clIEnt.o speed.o s_time.o apps.o s_cb.o s_socket.o app_rand.o version.o sess_ID.o ciphers.o nseq.o pkcs12.o pkcs8.o pkey.o pkeyparam.o pkeyutl.o spkac.o smime.o CMS.o rand.o engine.o ocsp.o prime.o ts.o ${liBDEPS} )Undefined symbols for architecture i386:  "_ENGINE_load_gost",referenced from:      _ENGINE_load_builtin_engines in libcrypto.a(eng_all.o)ld: symbol(s) not found for architecture i386collect2: ld returned 1 exit statusmake[2]: *** [link_app.] Error 1make[1]: *** [openssl] Error 2make: *** [build_apps] Error 1

我几乎可以肯定这是一个路径问题,但我无法弄清楚如何告诉Xcode(或脚本)使用哪些路径.

需要修改脚本available here以解释最近使用Xcode 4.3对开发人员工具位置的更改(即Developer /不再位于root用户,但实际上在Xcode.app中).

这是问题完整性的脚本:

#!/bin/sh#  automatic build script for libssl and libcrypto #  for iPhoneOS and iPhonesimulator##  Created by Felix Schulze on 16.12.10.#  copyright 2010 Felix Schulze. All rights reserved.##  licensed under the Apache license,Version 2.0 (the "license");#  you may not use this file except in compliance with the license.#  You may obtain a copy of the license at##  http://www.apache.org/licenses/liCENSE-2.0##  Unless required by applicable law or agreed to in writing,software#  distributed under the license is distributed on an "AS IS" BASIS,#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implIEd.#  See the license for the specific language governing permissions and#  limitations under the license.#############################################################################  Change values here                                                     ##                                                                         #VERSION="1.0.0c"                                                          #SDKVERSION="5.0"                                                          ##                                                                         #############################################################################                                                                         ## Don't change anything under this line!                                  ##                                                                         ############################################################################CURRENTPATH=`pwd`CURRENTPATH="${CURRENTPATH}/openssl"set -eif [ ! -e openssl-${VERSION}.tar.gz ]; thenecho "Downloading openssl-${VERSION}.tar.gz"curl -O http://www.openssl.org/source/openssl-${VERSION}.tar.gzelseecho "Using openssl-${VERSION}.tar.gz"fimkdir -p "${CURRENTPATH}/src"tar zxf openssl-${VERSION}.tar.gz -C "${CURRENTPATH}/src"rm openssl-${VERSION}.tar.gzcd "${CURRENTPATH}/src/openssl-${VERSION}"############# iPhone Simulatorecho "Building openssl for iPhonesimulator ${SDKVERSION} i386"echo "Please stand by..."export CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhonesimulator.platform/Developer/usr/bin/gcc -arch i386"mkdir -p "${CURRENTPATH}/bin/iPhonesimulator${SDKVERSION}.sdk"LOG="${CURRENTPATH}/bin/iPhonesimulator${SDKVERSION}.sdk/build-openssl-${VERSION}.log"./configure BSD-generic32 --openssldir="${CURRENTPATH}/bin/iPhonesimulator${SDKVERSION}.sdk" > "${LOG}" 2>&1# add -isysroot to CC=sed -IE "s!^CFLAG=!CFLAG=-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhonesimulator.platform/Developer/SDKs/iPhonesimulator${SDKVERSION}.sdk !" "Makefile"make >> "${LOG}" 2>&1make install >> "${LOG}" 2>&1make clean >> "${LOG}" 2>&1########################### iPhoneOS armv6echo "Building openssl for iPhoneOS ${SDKVERSION} armv6"echo "Please stand by..."export CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6"mkdir -p "${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk"LOG="${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk/build-openssl-${VERSION}.log"./configure BSD-generic32 --openssldir="${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk" > "${LOG}" 2>&1sed -IE "s!^CFLAG=!CFLAG=-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDKVERSION}.sdk !" "Makefile"# remove sig_atomic for iPhoneOSsed -IE "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"make >> "${LOG}" 2>&1make install >> "${LOG}" 2>&1make clean >> "${LOG}" 2>&1########################### iPhoneOS armv7echo "Building openssl for iPhoneOS ${SDKVERSION} armv7"echo "Please stand by..."export CC="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv7"mkdir -p "${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk"LOG="${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk/build-openssl-${VERSION}.log"./configure BSD-generic32 --openssldir="${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk" >> "${LOG}" 2>&1sed -IE "s!^CFLAG=!CFLAG=-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS${SDKVERSION}.sdk !" "Makefile"# remove sig_atomic for iPhoneOSsed -IE "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"make >> "${LOG}" 2>&1make install >> "${LOG}" 2>&1make clean >> "${LOG}" 2>&1#############echo "Build library..."lipo -create ${CURRENTPATH}/bin/iPhonesimulator${SDKVERSION}.sdk/lib/libssl.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk/lib/libssl.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk/lib/libssl.a -output ${CURRENTPATH}/libssl.alipo -create ${CURRENTPATH}/bin/iPhonesimulator${SDKVERSION}.sdk/lib/libcrypto.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv6.sdk/lib/libcrypto.a ${CURRENTPATH}/bin/iPhoneOS${SDKVERSION}-armv7.sdk/lib/libcrypto.a -output ${CURRENTPATH}/libcrypto.amkdir -p ${CURRENTPATH}/includecp -R ${CURRENTPATH}/bin/iPhonesimulator${SDKVERSION}.sdk/include/openssl ${CURRENTPATH}/include/echo "Building done."
解决方法 它已在 openssl上记录为问题.

调整配置行:

./Configure darwin64-x86_64-cc zlib no-asm no-krb5 shared
总结

以上是内存溢出为你收集整理的iphone – 在Xcode中作为“运行脚本”阶段运行时,OpenSSL构建脚本失败(在Xcode之外成功)全部内容,希望文章能够帮你解决iphone – 在Xcode中作为“运行脚本”阶段运行时,OpenSSL构建脚本失败(在Xcode之外成功)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存