[英]What do I need to call CSBackupIsItemExcluded (probably from either Frameworks or Core Services) on macOS Big Sur?
在今天更新到 Big Sur 之前,我能够(在 Mojave 上)命令行编译/链接调用 CSBackupIsItemExcluded 和 CFURLCreateFromFileSystemRepresentation 的 C 程序。
我通过链接实现了这一点(在 Mojave 上):
cc cbget.o \
/System/Library/Frameworks/Carbon.framework/Carbon \
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation \
-o cbget
我记得一两年前我花了几天时间才找到这个(并找到/下载文件),现在我不记得我做了什么:((是的,这次我做的笔记更好!)
如果我尝试上述方法,它会失败...... Big Sur 上不存在这些文件/目录。
如果我省略它们,链接将失败(预期):
架构 x86_64 的未定义符号:“_CFURLCreateFromFileSystemRepresentation”,引用自:cbget-b22970.o 中的 _handle_file “_CSBackupIsItemExcluded”,引用自:cbget-b22970.o 中的 _handle_file
我不能依靠 XCode 神奇地找到任何东西......我正在从命令行编译/链接。
我知道 CSBackupIsItemExcluded 仍在操作系统中......因为在 Mojave 下编译/链接的程序版本运行良好(并让我从命令行切换文件的“不备份”)。
顺便说一句,从 Mojave 搬到 Big Sur,我惊讶地发现“/usr/include”消失了,Apple 提供的“cc”神奇地知道要查看:/Applications/Xcode.app/Contents/Developer/Toolchains /XcodeDefault.xctoolchain/usr/include/c++/v1 用于“#include <stdint.h>”之类的内容
感谢您的任何指点! 斯坦
我可以相信 Carbon 框架可能已经消失了(Apple 很久以前就弃用了它),但 CoreFoundation 没有。 CoreFoundation 是启动时首先加载的内容之一,许多其他内容都依赖于它。
尽管如此,如果您确实需要 Carbon(并且它仍然存在),那么我认为您想要链接:
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
而不是:
/System/Library/Frameworks/Carbon.framework/Carbon
CFURLCreateFromFileSystemRepresentation
是 CoreFoundation 的一部分。
CSBackupIsItemExcluded
是 CoreServices 的一部分,因此请尝试与之链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.