在Xcode 4中构建与Objective-c应用程序一起使用的静态C lib

在Xcode 4中构建与Objective-c应用程序一起使用的静态C lib,第1张

概述我找到了例子和帖子 >创建一个用于C应用程序静态C lib >创建一个用于Objective C应用程序的静态Objective C lib. 我找不到并且几天以来一直困扰着,是在XCode 4下创建一个用于Objective-C应用程序的静态C库的正确方法. 我只想使用这个非常简单的代码进行测试: #include <iostream>#include "myCppLib.h"using 我找到了例子和帖子

>创建一个用于C应用程序的静态C lib
>创建一个用于Objective C应用程序的静态Objective C lib.

我找不到并且几天以来一直困扰着,是在XCode 4下创建一个用于Objective-C应用程序的静态C库的正确方法.

我只想使用这个非常简单的代码进行测试:

#include <iostream>#include "myCpplib.h"using namespace std;extern "C" voID show_the_world() {    cout << "Hello,world!\n";}

我使用armv6 / armv7目标,GCC 4.2编译器,将“C标准库类型”链接为“静态”并将“由默认隐藏的符号”链接为“C”,如静态C库的Xcode帮助所述.

我的Objective-C应用程序调用了关于std lib的“show_the_world”功能错误,似乎没有被包括或没有正确引用:

Undefined symbols for architecture armv6: "std::ios_base::Init::~Init()",referenced from:  ___tcf_0 in libmyCpplib_dev.a(myCpplib.o)  "std::basic_ostream<char,std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char,std::char_traits<char> >&,char const*)",referenced from:      _show_the_world in libmyCpplib_dev.a(myCpplib.o)  "std::ios_base::Init::Init()",referenced from:  __static_initialization_and_destruction_0(int,int)in libmyCpplib_dev.a(myCpplib.o)  "std::cout",referenced from:  _show_the_world in libmyCpplib_dev.a(myCpplib.o)ld: symbol(s) not found for architecture armv6collect2: ld returned 1 exit status

我相信我为正确的架构编译了这个库,所以在另一个设置或者我的代码中肯定有问题.

欢迎任何帮助!

最好的祝福,
吉米

解决方法 Jimmy Koerting在评论中提供了正确的答案:应用程序需要与libstdc .dylib链接以解析标准库符号. 感谢Jimmy Koerting,但还有一件我想添加的内容是,如果您在iOS 6.1中使用xcode最新版本,请添加此libstdc .6.dylib 总结

以上是内存溢出为你收集整理的在Xcode 4中构建与Objective-c应用程序一起使用的静态C lib全部内容,希望文章能够帮你解决在Xcode 4中构建与Objective-c应用程序一起使用的静态C lib所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1098332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存