How to check if a static library is built for 64-bit?

后端 未结 3 866
暗喜
暗喜 2020-12-07 08:55

I just built a static library for iOS with the build setting for Architectures set to $(ARCHS_STANDARD_INCLUDING_64_BIT).

I want to make sure that the

相关标签:
3条回答
  • 2020-12-07 09:38

    good old file can do the trick, too:

    $ file libTestFlight.a
    
    libTestFlight.a: Mach-O universal binary with 5 architectures
    libTestFlight.a (for architecture armv7):   current ar archive random library
    libTestFlight.a (for architecture armv7s):  current ar archive random library
    libTestFlight.a (for architecture i386):    current ar archive random library
    libTestFlight.a (for architecture x86_64):  current ar archive random library
    libTestFlight.a (for architecture cputype (16777228) cpusubtype (0)):   current ar archive random library
    

    It seems that nobody at Apple cared to add the arm64 cputype to file, yet.

    Interestingly, in the iOS 7 Tech Talk Videos ("Architecting Modern Apps, Part 2", PDF page 35) they show a working file tool's output:

    enter image description here

    0 讨论(0)
  • 2020-12-07 09:38

    For a .framework

    lipo -info myFramework.framework/MyFramework

    0 讨论(0)
  • 2020-12-07 09:39

    Yes, an arm64 slice is there. To see it, you need to use lipo from the iOS toolchain, not from the host system (which doesn’t know about arm64):

    xcrun -sdk iphoneos lipo -info $(FILENAME)
    
    0 讨论(0)
提交回复
热议问题