当使用Clang或GCC的Darwin后端为OSX创建可执行文件时,该标志-mmacosx-version-min=version可用于设置可执行文件将运行的最早版本的OSX.
有没有办法从给定的可执行文件中追溯哪个标志用于编译它?即有没有办法确定给定可执行文件的目标最小OSX版本?
我已经使用 Brew 在我的 mac 上安装了 FreeType。我的 mac 上的代码工作正常,但是当我尝试在其他 mac 上运行该项目时,我收到下面提到的链接错误。
dyld: Library not loaded: /usr/local/opt/freetype/lib/libfreetype.6.dylib
Referenced from: /Users/ashutosh/Library/Developer/Xcode/DerivedData/InstrumentChamp-
etytleaabhxmokadgrjzbgtmwxfl/Build/Products/Debug/instrumentchamp.app/Contents/MacOS/instrumentchamp
Reason: image not found (lldb)
Run Code Online (Sandbox Code Playgroud)
当我尝试在其他 Mac 上运行代码时,Freetype 的所有库目录和包含目录都包含在项目的“$SRCROOT/”目录中。
您在库的链接错误中看到的路径是brew 在我创建此项目的mac 中安装freetype 的位置。
/usr/local/opt/freetype/lib/libfreetype.6.dylib
Run Code Online (Sandbox Code Playgroud)
我已将所需的所有 lib/ include/ 目录复制到我的项目的主文件夹中。
我已经在 Xcode 中设置了库并包含路径。
我在这里缺少什么?我还需要做什么才能使我的代码在任何其他 Mac 上可移植。我通过安装 Brew 让项目在其他 Mac 上运行,但我想不需要安装 Brew 即可完成此操作。
PS:我必须使用brew安装freetype,因为我无法为32位处理器的freetype编译.dylib,.dylib的64位副本给我错误,例如“错误的架构!”