ld: symbol(s) not found for architecture armv7错误

将两个c函数从cpp文件中分离出来单独放入一个c文件中,报了下面的错:

Undefined symbols for architecture armv7:
  "MyEncrypt(unsigned char*, int, unsigned char*, int*, unsigned char*)", referenced from:
      MainScene::init() in MainScene.o
  "MyDecrypt(unsigned char*, int, unsigned char*, unsigned char*)", referenced from:
      MainScene::init() in MainScene.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

很是抓狂啊,为什么是Undefined symbols for architecture armv7啊?明明还有arm64的。

最后的错误原因感觉跟armv7有点风马牛不相及,其实是很简单的问题,太少写C代码了,居然把这个也忘记了:

If you are using c function in c++ file. you should use extern "c"{}. In .h file

#ifdef __cplusplusextern "C" 
{
#endif

swrve_currency_given(parameter1, parameter2, parameter3);// a c function

#ifdef __cplusplus
}
#endif
时间: 2024-08-29 08:57:46

ld: symbol(s) not found for architecture armv7错误的相关文章

iOS 编译含C++代码出现ld: symbol(s) not found for architecture i386错误之解决(转载)

最近项目需要搭建自己的IM服务器,在快速配置好Openfire之后,开始研究使用gloox开发XMPP客户端实现通信, 先下载gloox源码,然后./configure,make ,sudo make install,在/usr/local/下找到头文件夹和静态库,加到项目中,然后加入openssl库,编写测试代码,编译,报错:XXX not being for architecture i386,感觉是gloox静态库有问题(排除了网上说的头文件路径缺失.building phases没添加.

坑爹的 ld: symbol(s) not found for architecture armv7

前两天好好的程序在Xcode 8 4s(8.4)真机的时候遇到上图错误,但是在5s.6s上都能正常运行,第一反应百度--然后根据百度经验: 如果真机调试就是 undefined symbols for architecture armv7错误! 发生这种错误通常是project.pbxproj这个文件引起的,尤其在多人合作开发的时候,svn提交不规范可能导致project.pbxproj发生错误,导致文件的引用不在project.pbxproj文件中. xcode项目import文件会根据pro

ld: symbol(s) not found for architecture armv7

解决方案: Xcode直接clean应该是没有删掉项目索引之类的,我直接找到DerivedData,把里面所有文件夹都给清理了,再编译就好了PS:DerivedData影响:可重新生成:会删除build生成的项目索引.build输出以及日志.重新打开项目时会重新生成,大的项目会耗费一些时间. 路径:~/Library/Developer/Xcode/DerivedData 原文地址:https://www.cnblogs.com/foolish-guo/p/10898412.html

Undefined symbols for architecture armv7错误解决方法

Undefined symbols for architecture armv7: "_OBJC_CLASS_$_BriefMainModel", referenced from: objc-class-ref in BriefMainViewController.o "_OBJC_CLASS_$_DDXMLDocument", referenced from: objc-class-ref in BriefDetailViewController.o objc-c

Nginx 安装 (mac os) 错误 ld: symbol(s) not found for architecture x86_64

今天在mac os 上编译安装Nginx时候,报错:ld: symbol(s) not found for architecture x86_64, 经过一番折腾之后发现,由于Nginx依赖openssl库,查看openssl的./config 文件发现,这个问题应该是 openssl/config脚本猜对你的系统是64位,但是 会根据$KERNEL_BITS来判断是否开启x86_64编译,默认不开启,他会给你5秒时间确认是否停止编译,手动设置x86_64编译,所以默认你生成的openssl库文

Undefined symbols for architecture i386:ld: symbol(s) not found for architecture i386

昨天项目还好好的,今天一编译竟然报错: Undefined symbols for architecture i386: "_KCCategorySentence", referenced from: ___58-[EvaSettingController tableView:didSelectRowAtIndexPath:]_block_invoke_2 in EvaSettingController.o -[XFParams setDefault] in XFParams.o __

Showing Recent Messages ld: symbol(s) not found for architecture x86_64 可能出现的原因 模拟器运行的结果

---恢复内容开始--- 今天入职新公司,模拟器运行之前项目代码,各种崩溃,原因如下 最后问了各种人和网上各种资料查询,还是没有解决,最后只能找到几个月前项目负责人咨询,说是静态库不支持模拟器,只能真机运行, libprinter.SDK.a这个库不支持模拟器运行 ---恢复内容结束---

duplicate symbols for architecture armv7错误

此种情况可能由以下2种方法引发: 1.有名字重复的文件. 2.在#import的时候将.h写成了.m. 排除以上2种情况一般就解决了~

iOS导入高德地图出现缺失armv7--"Undefined symbols for architecture armv7"

在已有项目中使用pod导入高德地图,报了以下错误: ld: warning: directory not found for option '-L/Users/paul/iOS/yun-hui-yi/libs/Release-iphoneos' Undefined symbols for architecture armv7: "_OBJC_CLASS_$_MAMapView", referenced from: objc-class-ref in SingleLocationView