![](/img/trans.png)
[英]creating a block device programmatically in mac os x using iokit framework
[英]Creating static framework for OS X
通过使用温和的hack ,可以为iOS制作静态框架 。 静态框架使用起来非常方便:它们可以简单地放入新项目中而无需额外的步骤(比如将它们添加到构建中并添加标题搜索路径)。
我最近开始做OS X编程,我注意到的第一件事是静态框架似乎不可用。 动态框架显然是可用的和推荐的,但是由于我想制作一个供应用程序使用的小型私有框架(而不是安装在/Library/Frameworks
),在新的应用程序项目中使用动态框架仍然需要一些额外的步骤 。
在我的理想世界中,我将创建一个静态框架(包含头文件和编译的.a
文件的框架),将框架拖放到新项目中,然后开始编码。 有没有办法在OS X上制作这样的静态框架?
PS我已经尝试在正常的框架项目中将Mach-O输出类型设置为“静态库”,但我只是得到错误Framework target has invalid MACH_O_TYPE value of 'staticlib'.
。
您可以在Mac OS X上创建动态框架。在动态框架中,您可以将LD_DYLIB_INSTALL_NAME设置为@ rpath / Foo.framework / Versions / A / Foo
如果你有一个想要与这个框架链接的应用程序,那么你确保你运行
install_name_tool -add_rpath <rpath> <full-path-to-app-binary>
所以,如果我有Foo.app
install_name_tool -add_rpath Foo.app/Contents/Library Foo.app/Contents/MacOS/Foo
现在,如果你只是将你的Foo.framework复制到Contents / Library中,它应该被加载,一切都应该工作。
我希望这有帮助。
可能更简单的是使用带有公共头的静态库。 当您构建静态库时,您可以让Xcode自动为您复制标题。 在目标中,您可以将文件夹添加到搜索路径中。
如果您使用静态库,Xcode将删除您的应用程序并不真正需要但已编译到静态库中的一些死代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.