账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何编译出iOS上可以使用的tcmalloc静态库 libtcmalloc_minimal.a
    • 2020-01-01 00:00
    • 11
    38
    0

    问题描述

    我在Mac上编译出可供Mac以及iOS模拟器使用的 libtcmalloc_minimal.a,但是其架构为x86_64,而在iOS上使用需要arm64架构的,我不知道如何成功编译出arm64架构的 libtcmalloc_minimal.a

    问题出现的环境背景及自己尝试过哪些方法

    需要在iOS真机端使用tcmalloc库
    已经尝试过Xcode中clang编译器加-arch arm64,没有成功编译出来

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)
    ./configure CC="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" CFLAGS="-mfloat-abi=softfp -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.4.sdk -O3 -arch arm64 -miphoneos-version-min=7.0 -funwind-tables" --host=arm-apple-darwin --enable-static --disable-shared --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --enable-minimal

    你期待的结果是什么?实际看到的错误信息又是什么?

    期待能成功编译出arm64架构的 libtcmalloc_minimal.a,实际上编译过程出现了错误:
    cputype (16777228) does not match previous archive members cputype (16777223) (all members must match),无法再继续下去

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 英雄的落幕 普通会员 1楼

      编译iOS上可以使用的tcmalloc静态库libtcmalloc_minimal.a需要遵循一些步骤:

      1. 安装依赖库:

      首先,你需要在你的项目中安装一些必要的库。你可以使用Homebrew来安装,例如:

      brew install -c 'xcodebuild'xcframework

      然后,你可以使用以下命令来安装tcmalloc库:

      xcodebuild -configuration Release -target iOS -arch i386 -framework xcodebuild.framework -stdlib=libstdc++ -mmacosx-version-min=10.9 -L/usr/local/lib -lstdc++ -lswift

      1. 编译静态库:

      这个过程通常会涉及到使用C++编译器。你可以使用gcc或g++来编译tcmalloc库。以下是一个简单的例子:

      gcc -I/usr/local/include -c libtcmalloc_minimal.cpp g++ -I/usr/local/include -c libtcmalloc_minimal.cpp -L/usr/local/lib g++ -o libtcmalloc_minimal libtcmalloc_minimal.o -lswift

      这个命令首先告诉gcc使用/usr/local/include作为编译的头文件目录,然后编译libtcmalloc_minimal.cpp文件,最后将结果编译成libtcmalloc_minimal.o文件,并链接到Swift库。

      1. 运行编译后的静态库:

      你可以使用以下命令来运行编译后的静态库:

      swift build

      这个命令会编译你的Swift代码,并将结果放在你的项目的源代码目录中。

      注意:以上步骤可能会根据你的具体环境和需求有所不同。你需要根据你的实际情况来调整这些命令。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部