- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们知道我们可以强制静态库在链接期间加载所有目标文件。这用于不同的目的,例如将 objective-c 类别包含到静态库中等。
我的问题是,当项目使用 -ObjC 或 -all_load 标志时,是否可以强制库不加载所有目标文件?
我正在使用一些 clang 功能(特别是 __has_include 指令)来控制某些 header 的导入,但是当使用 -Objcflags时,该指令无效,所有目标文件都已加载,所以我的库没有正常工作。
有什么方法可以解决或解决这个问题吗?
问候,
最佳答案
Is there any way to solve or workaround this problem?
是的,但它是一个脆弱且容易出错的点,可能不值得。重构代码以不需要静态库 {y,ies} 的部分链接可能会更容易。
如果您对需要加载的每个符号都有硬引用,则链接器将解析该符号并将其链接到最终的可执行文件中。
但是,由于这根本不是受支持或推荐的模式,因此可能无法直接引用代码中的某些符号。同样,似乎没有代表整个类别的符号。您可能必须单独引用类别中包含的所有方法。
查看nm
命令行工具; nm -m library
将转储库中包含的所有符号信息。
关于ios - 强制静态库不使用 -ObjC of -all_load 标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15661866/
在编译 Objective-C 代码时,我无法找到 -all_load 标志的作用。 我在将二进制文件上传到 Apple 时遇到了一些问题,他们说这是因为我没有使用此标志,但即使没有它,我的代码也能编
在什么情况下你需要 -all_load 标志? 可以说我有类似的东西 g++ source.cpp -o test libA.a libB.a libC.a 根据我的记忆,是否存在对 source.c
我用于我的应用程序的组件之一要求我使用 -all_load 作为其链接器标志之一。但是当我添加这个标志时,我从我在我的应用程序中使用的另一个库中得到了一个错误。当我存档应用程序时,出现以下错误: Ap
我在使用 Cordova 和原生 SDK 附带的第三方插件构建 iOS 应用程序时遇到问题。 Cordova 需要其他 SDK 不满意的链接器标志“-all_load”。 我读了这篇关于“-all_l
我们知道我们可以强制静态库在链接期间加载所有目标文件。这用于不同的目的,例如将 objective-c 类别包含到静态库中等。 我的问题是,当项目使用 -ObjC 或 -all_load 标志时,是否
我在我的应用程序中使用 CatchoomSDK,现在我想使用社交框架。 Socialize 需要 -all_load 和 -ObjC 标志,使用这些标志我得到: duplicate symbol er
更新到 Xcode6 后,我在 IOS 7 上遇到此代码崩溃并显示“找不到符号:_OBJC_CLASS_$_UIUserNotificationSettings”,任何人都可以帮助解决它 if ([a
我正在添加 Rdio到我的 iOS 应用程序,我卡在了安装的这一部分: Add -all_load under Other Linker Flags in the project build info
-all_load 与 -ObjC 有何不同。在我的项目中,两者的行为方式相同。 最佳答案 -对象 此标志导致链接器加载库中定义 Objective-C 类或类别的每个目标文件。 -all_load
我有一个用于内部应用程序的静态库,其中包含一些常用的实用程序代码。从以前的 SO 帖子中,我发现为了让静态库中的类别在运行时加载,我需要在build设置的其他链接器标志字段中包含 -all_load
我想设置标志“-ObjC -all_load”,就像我在 xcode 中设置的那样(在 build-settings-> 其他链接器标志下) 为了让 iOS 应用程序与 applica iOS 框架一
我正在测试一些内在操作的行为。当我注意到 _mm_mfence() 从用户空间发出加载指令时,我感到很惊讶,但它不计入 L1 数据缓存 - 未命中、命中或填充缓冲区命中。我正在使用 papi 的 na
这个问题在这里已经有了答案: 关闭 9 年前。 Possible Duplicate: What does the -all_load linker flag do? 我看到大多数静态库都要求你这样
我正在将 google 提供的 adMob 添加到我的 iOS 应用程序中,但我陷入了安装的这一部分:在项目构建信息中的“其他链接器标志”下添加 -all_load 如果我添加该标志,则另一个第三方库
我知道以前有人问过这个问题,但我已经尝试了所有我能找到的方法,但都没有奏效。 我有一个功能齐全的 iOS 应用,现在我想将 AdMob 网络中介与其集成。我已经成功地让 AdMob 正常工作,但 Me
bug演示here .它说对于 64 位和 iPhone OS 应用程序,存在一个链接器错误,阻止 -ObjC 从仅包含类别而没有类的静态库加载对象文件。解决方法是使用 -all_load 或 -fo
我是一名优秀的程序员,十分优秀!