macOS 开发命令行知识
universal 二进制
显示二进制的架构类型:
~# lipo -archs XXX
直接编译 universal 二进制程序:
~# g++ -std=c++11 -arch x86_64 -arch arm64 -o XXX_universal XXX.cpp
分别编译不同架构的程序,并使用 lipo
合并:
~# g++ -std=c++11 -target x86_64-apple-macos10.12 -o XXX_x86 XXX.cpp
~# g++ -std=c++11 -target arm64-apple-macos11 -o XXX_arm XXX.cpp
~# lipo -create -output XXX_universal XXX_x86 XXX_arm
otool
显示程序使用的动态库:
~# otool -L XXX
也可以使用环境变量,在运行程序时显示完整的依赖库:
~# DYLD_PRINT_LIBRARIES=1 DYLD_PRINT_LIBRARIES_POST_LAUNCH=1 DYLD_PRINT_RPATHS=1 ./XXX
显示加载命令:
~# otool -l XXX