将 Objective-C 应用程序链接到 C++ 静态库

2023-11-25

我正在尝试使用 Xcode 构建一个链接到静态 C++ 库的 Objective-C 桌面应用程序。我正在使用苹果的 clang 编译器。我收到以下链接器错误:

Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.2.0
Thread model: posix
 "/Developer/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.7.0 -syslibroot /Developer/SDKs/MacOSX10.7.sdk -o /Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug/sl marketplace analyitics.app/Contents/MacOS/sl marketplace analyitics -lcrt1.10.6.o -L/Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug -L/Users/andrew/Projects/sl-marketplace-analysis/platform/mac/sl marketplace analyitics/../../../../../Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug -filelist /Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Intermediates/sl marketplace analyitics.build/Debug/sl marketplace analyitics.build/Objects-normal/x86_64/sl marketplace analyitics.LinkFileList -framework Cocoa -lcore -lSystem /Developer/usr/bin/../lib/clang/3.0/lib/darwin/libclang_rt.osx.a -F/Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug
Undefined symbols for architecture x86_64:
  "std::ios_base::Init::~Init()", referenced from:
      ___cxx_global_var_init in libcore.a(test.o)
  "std::ios_base::Init::Init()", referenced from:
      ___cxx_global_var_init in libcore.a(test.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

它似乎没有链接到 C++ std 库。这是问题吗?如果是,我如何确保它链接到它?

Update:

如果我向构建添加一个空白的 cpp 文件,那么一切都会编译并运行良好。我似乎只是需要一种方法来告诉链接器链接到 C++ std 库。我尝试查看 Xcode 中的所有构建设置,但似乎找不到任何有帮助的内容。


尝试添加 -lstdc++ 或 -lc++ (取决于静态库所需的 C++ 运行时) 到“构建设置”下的“其他链接器标志”:

enter image description here

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

将 Objective-C 应用程序链接到 C++ 静态库 的相关文章

  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 重载<<的返回值

    include
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 致命错误:在 Swift 中解包可选值时意外发现 nil

    所以我试图获取 Swift 中输入字段的文本 这就是我得到的 class ViewController UIViewController IBOutlet var passwordField UITextField IBOutlet var
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 数字和一位小数的正则表达式

    我似乎无法使用简单的正则表达式来工作 这是我目前所拥有的 Hours on input function e var regex d d 0 2 g if regex test this value if regex test this v
  • 获取变量名。 javascript“反射”

    有没有办法获取变量name 就像你可以在 Net 中使用反射做的那样 就像在这个场景中 function x y z if x 0 logger log variable x reflectedName has invalid value
  • 在应用程序域之间来回传递值

    我有以下代码 public class AppDomainArgs MarshalByRefObject public string myString static AppDomainArgs ada new AppDomainArgs m
  • 有关即将推出的 fork-join 框架的资源

    我正在寻找有关如何使用即将推出的 jsr166y fork join fences 和 extras166y ParallelArray 等 的组织良好的信息源 从教程到专家级别的内容 IBM Developerworks 网站有一个好系列
  • 如何写一个解释器?

    我决定用 Ruby 编写一个小型解释器作为我的下一个项目 我需要什么知识 技能才能成功 我还没有决定要解释的语言 但我正在寻找一种不是玩具语言 但相对容易编写解释器的语言 提前致谢 你至少必须学习 词法分析 将字符分组为标记 解析 将标记分
  • Bootstrap 缩略图中的垂直居中约束图像

    Using 推特引导程序 我正在尝试创建一个水平滚动的系列缩略图它允许在显示缩略图的行中使用滚动条 如下所示 使用以下 HTML 我可以完成大部分工作 div class row Hello there div div class row
  • fgets 实现 (K&R)

    我是编程新手 从 Objective C 开始 但决定在进一步发展之前先回到基础知识 我花了一些时间在 C 上 并且正在努力克服指针混乱 我的问题是关于 K R 所说的 fgets 是如何实现的 第 165 页 第二版 下面的代码直接来自文
  • 在片段中运行时更改方向时更改布局,而无需重新创建视图

    我尝试开发第一个应用程序 从网络下载图像并在网格视图中显示它们 gridview 是主 Activity 的一个片段 下载过程是通过 onCreate 函数中的 AsyncTask 完成的 为了在改变方向时不再次下载图像 我设置了andro
  • XML 数据类型方法“值”必须是字符串文字[重复]

    这个问题在这里已经有答案了 如何更改我的查询以免发生此错误 XML 数据类型方法 值 必须是字符串文字 T SQL代码 Declare Count Int 1 While count lt j Begin insert into mytab
  • 使用Google Closure编译器[重复]

    这个问题在这里已经有答案了 可能的重复 使用 Google Closure Compiler 编译 jQuery 我正在使用 jQuery 并且我的所有 JS 代码都在 application js 文件中 当我使用 Google Clos
  • 在 Android 上从 GPS 提供商获取“粗略”位置

    我的应用程序只需要非常粗略的位置数据 因此我最初将清单权限设置为ACCESS COARSE LOCATION 并设置一个位置侦听器NETWORK PROVIDER 这为我提供了我所需要的粗略位置估计 但前提是 Google 定位服务已打开
  • 论坛如何向您显示未读主题?

    我有用 php mysql 编码的用户讨论论坛 我想知道知名论坛如何向您显示哪些主题中有新帖子 通常是通过更改线程旁边的图标图像而不使用任何资源 The simplest方法是跟踪某人上次登录的时间 当他们回来访问时 从那时起更新的所有内容
  • iOS 13 `withTintColor` 不遵守我分配的颜色

    我发现新的 iOS 13 UIImage 属性的行为withTintColor renderingMode 难以理解 它的用途是什么 它与图像出现的上下文的色调颜色有何关系 例如 let im UIImage systemName circ
  • 字符串集??!​​!

    您熟悉这个块 Var mySet Set Of Char C Char begin mySet a b c If C In mySet Then ShowMessage Exists end 有什么办法可以申报吗Set Of STRING
  • 为什么我不能在 IE7 中使用相对 URL?

    我已经用谷歌搜索了一段时间 似乎找不到这个问题的答案 我的问题如下 对于我的 jquery 我需要我的链接是相对的而不是绝对的 我的 PHP 设置为返回相对 url 一切正常 直到我在 IE7 中测试它 由于某种原因 IE7 不断将我的相对
  • 如何删除名称以“-”开头的分支

    在尝试创建跟踪分支时 我设法创建了一个名为 t 的本地分支 我无法删除分支 因为分支名称也是一个参数 这是在 Windows 机器上 git branch D t fatal branch name required 逃避也无济于事 git
  • jQuery和prototype.js冲突,如何保持jQuery为$?

    所以我正在开发一个同时使用 jQuery 和prototype js 的网站 但是它们是冲突的 我进行了相当多的研究 发现人们解决这个问题的唯一方法是使用
  • 无状态类仿函数什么时候可以代替 C 风格函数?

    我在 SO 上找到了一些很好的函子示例 例如this一 所有令人信服的例子似乎都在定义的类中使用了状态operator 我在一本书中遇到一个例子 它定义了没有状态的函数调用运算符 我不禁觉得这是一种尴尬的用法 并且普通风格的函数指针会比使用
  • LocationManager 返回旧的缓存“Wifi”位置和当前时间戳

    我正在尝试获取当前位置 为此 我实现了一个 LocationListener 并将其注册到网络和 GPS 提供商 locationManager requestLocationUpdates LocationManager GPS PROV
  • 将 Objective-C 应用程序链接到 C++ 静态库

    我正在尝试使用 Xcode 构建一个链接到静态 C 库的 Objective C 桌面应用程序 我正在使用苹果的 clang 编译器 我收到以下链接器错误 Apple clang version 3 0 tags Apple clang 2