仅在为模拟器构建时才重复符号

2024-01-08

当为设备(ipad 3)构建时,我的构建工作发现没有警告或错误,但是当为 iPad 或 iPhone 模拟器构建时,我收到如下链接器错误:

duplicate symbol _CONSTANT_NAME in:
/Users/me/libLibrary.a(FileName.o)
/Users/me/libOtherLibrary.a(OtherFileName.o)

常量在头文件中的定义如下

const int CONSTANT_NAME = 123;

我尝试将常量包装在 #define 标签中,如下所示:

#ifndef CONSTANTS_H
#define CONSTANTS_H

const int CONSTANT_NAME = 123;

#endif

为什么在为设备构建时工作正常,但在为模拟器构建时会出现问题?


编译器正在告诉你完全正确的事情。幸运的是,直接构建到 iPad 时不会发生这种情况。

在包含此标头的每个 .m 文件中,您将创建一个具有相同名称的新的不同变量。当将所有这些文件链接到单个 .a 中时,编译器可以解决此问题,但是当构建多个 .a 文件并将这些多个 .a 文件链接在一起时,编译器会编译重复的副本。

我会做三件事之一:

  1. 关闭const int into a #define. #define CONSTANT_NAME 123
  2. 之前添加静态const int. static const int CONSTANT_NAME = 123;
  3. 之前添加 externconst int并添加真实的const int到一个.m。在.h中,extern const int CONSTANT_NAME;。在单曲.m中,const int CONSTANT_NAME = 123;.

对于最后一个,我将创建一个 Constants.m 文件作为单独的位置来保存const int CONSTANT_NAME = 123;定义。

希望有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅在为模拟器构建时才重复符号 的相关文章

  • (Kiss)XML xpath 和默认命名空间

    我正在开发一个 iPhone 项目 需要解析一些 xml xml 可能包含也可能不包含默认名称空间 我需要知道如何解析 xml 以防它使用默认命名空间 由于我需要读取和写入 xml 因此我倾向于使用 KissXML 但我愿意接受建议 这是我
  • ios swift parse:从 3 个类收集数据

    我有这样的结构 User CardSet 带有指向 User objectId 的指针 user 和 col name 带有点 cards 的卡片到 Card Set objectId 和列 name 我想选择所有卡数据 包括当前用户的卡集
  • dyld:无法加载插入的库

    当我尝试运行 UI 和单元测试时 出现异常 dyld 无法加载插入的库 private var containers Bundle Application AutoTestingApp app Frameworks IDEBundleInj
  • iOS:生成pdf时绘制文本时如何设置字体?

    我在ios应用程序中使用drawpdf函数生成pdf 同时调用nsobject类中的drawtext函数 它根据我指定的框架和字符串清楚地绘制文本 我的代码是 void drawText NSString textToDraw inFram
  • 从命令行添加 Xcode 开发者帐户

    我正在尝试使用xcodebuild allowProvisioningUpdates在我只能通过命令行访问的计算机 Azure Devops macOS 托管计算机 上 不幸的是 根据man xcodebuild为了使用 allowProv
  • 与大多数其他 OS X 应用程序相比,我到底应该传递什么给 -[NSApp activateIgnoringOtherApps:] 才能让我的应用程序“自然”启动?

    当我学习如何自己启动 NSApplications 时 我使用的代码 基于here https bitbucket org rsc plan9port src 18c38bf29b0b8eb3ffd0afb44d22f9bfcda8bc58
  • ReactiveCocoa 将 SignalProducers 合二为一

    我正在使用 ReactiveCocoa 并且我有几个 SignalProducers let center NSNotificationCenter defaultCenter let signalProducer1 center rac
  • 调整 UIImage 的大小而不将其完全加载到内存中?

    我正在开发一个应用程序 用户可以在其中尝试加载非常非常大的图像 这些图像首先在表格视图中显示为缩略图 我的原始代码会在大图像上崩溃 因此我重写它以首先将图像直接下载到磁盘 是否有一种已知的方法可以调整磁盘上图像的大小 而无需通过以下方式将其
  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • 将 NSData 转换回音频文件

    我已经转换了我的 caf音频文件到NSData使用以下代码行对象 NSData audioData NSData dataWithContentsOfFile MyRecorderFilePathURL path options 0 err
  • “预期的 ';'在 Swift 下的顶级声明符之后”

    我正在尝试将所有颜色设置在一个 Swift 文件中 该文件可以在我的整个应用程序中使用 下面的代码会导致 import Foundation import UIKit class DotColors let tsblueColor UICo
  • 在 appdelegate 中呈现多个模态视图

    我想在应用程序收到 application UIApplication application didReceiveRemoteNotification NSDictionary userInfo 中的每个推送消息后呈现一个 modalvi
  • 访问目标 c 中的类方法。使用 self 还是类名?

    我正在学习 iOS 编程 并且对以下有关关键字 self 的使用的代码感到困惑 据我了解 self就像Java的this 它指的是当前实例 当我想调用类方法时 通常的方式应该是这样 PlayingCard validSuits 但是侵入实例
  • 如何在代码中编辑约束

    我有一个以 100 开始宽度限制的网页 当用户单击按钮时 我想将约束更改为 200 我试过这个 NSLayoutConstraint constrain NSLayoutConstraint constraintWithItem self
  • UITableViewCell显示多种字体

    我想在 uitableviewcell 中以类似于 iPhone 地址簿的不同字体显示两个单词 例如 约翰Buchanan 您应该使用两个 UILable 或者您可以使用OH属性标签 https github com AliSoftware
  • TableViewController 的 viewDidLoad 未触发

    我一直在关注这个tutorial http www appcoda com ios programming sidebar navigation menu 有一个滑出式菜单 我添加了一个 TableViewController 它将显示文章
  • 在实例化对象之前是否可以检查故事板中是否存在标识符?

    在我的代码中我有这一行 但我想知道是否有办法检查是否 一些控制器 在我将它与 一起使用之前就存在实例化ViewControllerWithIdentifier 方法 如果标识符不存在 则应用程序崩溃 如果没有好的方法 这并不是一个大问题 我
  • 从应用程序启动 iPhone 设置屏幕?

    我正在开发一个应用程序 我希望按下按钮时 iPhone 设置屏幕应该打开 苹果有访问限制吗 到底能不能 如果能的话怎么办 不 你不能那样做 但是 作为替代方案 您可以使用这个框架 http www inappsettingskit com
  • 像 TraceGL 一样分析 Objective C 中的代码路径?

    TraceGL 是一个非常简洁的项目 它允许 JS 程序员跟踪 Javascript 中的代码路径 它看起来像这样 我想为 Objective C 构建类似的东西 我知道运行时使跟踪方法调用变得相当容易 但是我如何跟踪控制流 例如 在上面的
  • 如何为 UIImageView 随机化器实现滑动手势

    我一直在浏览大量的教程和问题 但似乎找不到我要找的东西 我有一种感觉 我只是错过了一个简单的步骤 我仍在学习诀窍 所以请承受和我一起做这个 我正在 xcode 4 3 3 上制作图像随机化器 并且我已经能够使用按钮来随机化图像 但我希望它能

随机推荐

  • 监控应用程序对 DLL 的调用

    简而言之 我想监视从应用程序到 DLL 的选定调用 我们有一个旧的 VB6 应用程序 我们丢失了它的源代码 当时公司没有使用源代码控制 此应用程序使用第 3 方 DLL 我想在新的 C 应用程序中使用这个 DLL 不幸的是 DLL API
  • 如果存储过程中参数为空,则选择全部

    我想在 SQL Server 中创建一个过程来选择并连接两个表 参数 company from 和 to 始终被设置 但 serie type 可以为NULL 如果 serie type不为NULL我只想包含指定的类型 简单AND S Ty
  • 我们什么时候应该将 String 更改为 Stringbuilder?

    在应用程序中 字符串是一种常用的数据类型 我们知道 字符串的突变会占用大量内存 所以我们能做的就是使用 StringBuilder StringBuffer 但什么时候我们应该改用 StringBuilder 呢 当我们必须拆分它或替换其中
  • 使用 apache ant 构建时未找到属性“hardwareAccelerated”的资源标识符

    我的应用程序针对 android API 级别 7 2 1 在 Eclipse 下一切正常 生成的 APK 在 2 1 设备上也可以正常工作 我尝试使用 apache ant 构建应用程序并收到此错误 相同问题的所有解决方案都告诉我必须设置
  • YouTube API - 通过播放列表查询获取所有视频的标签

    我正在查询 YouTube 频道以检索播放列表元数据 如下所示 https www googleapis com youtube v3 playlistItems part snippet 2CcontentDetails maxResul
  • getEdgeFlags 总是返回 0?

    为什么我无法获取getEdgeFlags 是否能够检测到边缘触摸 我延长了DrawerLayout 然后做了 Override public boolean onInterceptTouchEvent MotionEvent ev int
  • 有什么方法可以在 Swift 中逐渐加快游戏速度吗?

    我目前正在使用 Spritekit 开发一款游戏 游戏中的物体会在屏幕顶部产生并落向玩家角色 当玩家角色与任何物体碰撞时游戏结束 我正在尝试找到一种方法 随着时间的推移逐渐加快游戏速度 使游戏变得更加困难 即游戏开始时物体以正常速度下落 5
  • php 会话在服务器中存储多长时间?

    我想知道 php 会话在服务器内存中存储多长时间 如果用户登录 在服务器中设置会话变量 并且他使浏览器长时间打开 假设 30 天 并且他在第 31 天重新加载页面 该怎么办 浏览器可以访问会话变量 浏览器仍然有会话cookie 吗 默认 p
  • 如何在 Ubuntu 14.04 上安装 php7 (zts) + pthreads

    我需要完整安装 PHP7 ZTS Pthreads 的帮助 我已尝试以下安装但无法使其工作 sudo i apt get update apt get install y git bison autoconf build essential
  • transformClassesWithJarMergingForDebug,com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:

    尝试在设备上运行应用程序时出现此错误 但是gradle同步总是成功的 错误 任务执行失败 EmployeeManager transformClassesWithJarMergingForDebug gt com android build
  • Chrome/V8 不会垃圾收集循环引用吗?

    看一下 Chrome 堆快照的这一部分 它显示了堆中对象的保留器 据我所知和所见 该对象应该是垃圾 但尽管如此 该对象仍未被收集 毕竟 到根的 最短 路径是一条循环路径 它实际上从未到达根 这让人想知道 快照查看器如何能够为其分配 12 的
  • 使用可用的训练挂钩在 tf.estimator.DNNRegressor 中实现提前停止

    我是张量流新手 想要实现提前停止tf estimator DNNRegressor带有可用的训练挂钩训练挂钩 https www tensorflow org api guides python train Training Hooks对于
  • 在反应对话框模型中打开 iframe 时,锚标记 href 不起作用

    我们开设了一个iframe在模式对话框中 在里面iframe我们正在加载一个document 该文档也是 html 页面 这 a 文档中的标签未导航至id他们中提到的href 只是来自的一个样本html文档 下面是 a 例子 a href
  • 你的 .vimrc 中有什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 调试 iOS Safari 上添加到主屏幕的 Web 应用程序

    我正在尝试调试添加到主屏幕的网络应用程序 我已经在 safari 上启用了网络检查器 如果我在 iOS safari 中打开 我可以调试该应用程序 但是当我将应用程序添加到主屏幕并尝试调试时 它显示 无可检查的应用程序 任何帮助 将不胜感激
  • 动态列出项目中的所有表单

    我想在列表框中动态列出项目中存在的所有表单的名称 然后通过单击每个表单 在另一个列表框中列出该表单上存在的所有按钮 但我不知道是否可以实施以及如何实施 如果您使用的是 Delphi 2010 您可以使用 RTTI 列出所有已注册 在应用程序
  • 编写软件时 64 位相对于 32 位的优势 [重复]

    这个问题在这里已经有答案了 如果我有一个像 HelloWorld 这样用 C 编写的简单程序 然后我在 32 位和 64 位的机器上编译它 我会得到两个不同的二进制文件做同样的事情 但它们是不同的机器代码 只有 32 位二进制文 件能够在
  • EWS FindItems OrderBy - 按 EmailMessageSchema 排序。来自不正确的顺序

    我正在视图上使用 OrderBy 调用 EWS FindItems 方法 如果我使用各种 ItemSchema 值 例如 ItemSchema DisplayTo ItemSchema Importance ItemSchema Subje
  • 使用 ISABOUT 时可以使用变量吗?

    我正在尝试使用存储过程创建一个表 通过获取主题名称并使用与该主题名称关联的关键字和权重来确定如何对帖子进行排名 从而对帖子进行排名 我一直在尝试使用 CONTAINSTABLE 和 ISABOUT 但在将关键字和权重放入 ISABOUT 语
  • 仅在为模拟器构建时才重复符号

    当为设备 ipad 3 构建时 我的构建工作发现没有警告或错误 但是当为 iPad 或 iPhone 模拟器构建时 我收到如下链接器错误 duplicate symbol CONSTANT NAME in Users me libLibra