代码之家  ›  专栏  ›  技术社区  ›  arun kumar

架构i386:libcurl的未定义符号

  •  0
  • arun kumar  · 技术社区  · 11 年前

    当我集成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:
    
    4 回复  |  直到 11 年前
        1
  •  0
  •   Rajesh    11 年前

    您添加的静态库 libcurl.a 用于设备。您正在尝试为模拟器构建应用程序(i386适用于Mac)。要么更改您的 libcurl.a语言 或为Device构建应用程序将解决您的问题。

        2
  •  0
  •   Premsuraj    11 年前

    我曾经在另一家图书馆办过这样一期杂志。问题是模拟器在x86处理器上运行,而实际设备在ARM上,您实际上需要在项目中构建两个独立的库。一个用于模拟器,一个用于ARM。如果你的目标是ARM-64,你也需要一个版本。

        3
  •  0
  •   Rajesh    11 年前

    在运行脚本中替换此。。。希望这能解决问题

    定义输出文件夹环境变量

    UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
    

    步骤1。生成设备和模拟器版本

    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}"
    

    步骤2。使用lipo创建通用二进制文件

    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}/"
    
        4
  •  0
  •   Serg Tsarikovskiy    11 年前

    检查您的目标->构建阶段->Link Binary With Labraries是添加的所有必需框架和库