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

将Objective-C应用程序链接到C静态库,第1张

概述我正在尝试使用Xcode构建一个链接静态C库的Objective-C桌面应用程序.我正在使用Apple的clang编译器.我收到以下链接器错误: Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)Target: x86_64-apple-darwin11.2.0Thread model: posix 我正在尝试使用Xcode构建一个链接静态C库的Objective-C桌面应用程序.我正在使用Apple的clang编译器.我收到以下链接器错误:

Apple clang version 3.0 (Tags/Apple/clang-211.12) (based on LLVM 3.0svn)Target: x86_64-apple-darwin11.2.0Thread 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/DeBUGUndefined 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_64clang: error: linker command Failed with exit code 1 (use -v to see invocation)

它似乎没有链接到C std库.这是问题所在,如果是这样,我如何确保它与之相关联?

更新:

如果我向构建添加一个空白的cpp文件,那么一切都编译并运行正常.我似乎只需要一种方法来告诉链接器链接C std库.我试过查看Xcode中的所有构建设置,但似乎找不到任何有用的东西.

解决方法 尝试添加-lstdc或-lc(取决于静态库期望的C运行时) 到“Build Setting”下的“Other linker Flags”: 总结

以上是内存溢出为你收集整理的将Objective-C应用程序链接到C静态库全部内容,希望文章能够帮你解决将Objective-C应用程序链接到C静态库所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存