如何检查库(静态或动态)是为iOS模拟器或Mac OSX构建的

pcww981p  于 2023-10-21  发布在  iOS
关注(0)|答案(2)|浏览(100)

我的工作被'ld:警告:紧急:为iOS模拟器构建,但链接为OSX构建的对象文件,反之亦然,所以我想找出一个库是为哪个平台构建的。
我试过:

file tmp/openssl/lib/libcrypto.dylib
lipo -info tmp/openssl/lib/libcrypto.dylib
otool -hv -arch all tmp/openssl/lib/libcrypto.a
otool -hv -arch all /usr/local/opt/openssl/lib/libcrypto.a

而我得到的唯一的东西是CPU类型x86_64或i386。

7kjnsjlb

7kjnsjlb1#

正如this文章中最初描述的那样,您可以运行otool -l /path/to/binary并检查“Load”命令的输出。输出应包含LC_VERSION_MIN_IPHONEOS命令(适用于iOS二进制文件)和LC_VERSION_MIN_MACOSX命令(适用于macOS)。

fhity93d

fhity93d2#

vtool-show-build一起使用,它将告诉您二进制文件的目标平台。

% vtool -show-build foobar.dylib 
build/layers/foobar.dylib:
Load command 8
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform IOS
    minos 13.0
      sdk 17.0
   ntools 1
     tool LD
  version 1015.7

目前vtool只对最终链接的二进制文件进行操作,例如可执行文件、动态库和bundle。

相关问题