xcode上编译c语言程序报错:ld: x duplicate symbol for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

在网上查了一下:

duplicate symbol的大概意思是,编译器认为你重复定义了一些东西。

linker command failed with exit code 1,则可能是项目引入了多个相同的文件。

结合本人开发中发现此类的问题,解决办法如下:

方法1:查看有问题的文件是否有重复引用。或头文件是否加载了.m

方法2:将有问题的文件删除,重新加载进去。然后:clean->build.

在开发中解决RegexKitlLite的类似问题办法:

_rkl_NSExceptionForRegex in RegexKitLite.o

"_u_strlen", referenced from:

_rkl_userInfoDictionary in RegexKitLite.o

"_uregex_clone", referenced from:

-[RKLBlockEnumerationHelper initWithRegex:options:string:range:error:]in RegexKitLite.o

ld: symbol(s) not found for architecture i386

collect2: ld returned 1 exit status

解决办法:

在项目的编译设置中找到Other Linker Flags,然后在后面字段空白处双击,添加“-licucore”就ok了。

开发中常见问题总结:

一下内容均为个人学习使用,有不足之处请拍砖。

使用代码创建窗口,没有反应,无法进入 didFinishLaunchingWithOptions方法.

报错描述:使用代码创建窗口,没有反应,无法进入 didFinishLaunchingWithOptions方法.

报错原因:没有正确重写didFinishLaunchingWithOptions方法,或者修改错写了方法没发现

解决方案:正确重写didFinishLaunchingWithOptions方法



reason: ‘couldn‘t find a common superview for ...UILabel:0x7f8ec05c3ab0 frame = (0 0; 0 0);

报错原因 couldn‘t find a common superview for ... frame = (0 0; 0 0);使用masonry前没有把对象加入父控件

解决方案:在masonry控制对象约束前把对象增加进入某控件

[self.viewaddSubview:label];


Duplicate declaration of method  错误原因:复制方法的声明(重复定义,重复声明)

duplicate symbols for architecture  错误原因:重复导入.m文件或者错误import  .m文件

解决方案:删除相同的声明,定义



Application windows are expected to have a root view controller at the end of application launch‘

报错原因:没有设置窗口的根控制器

解决方案:self.window.rootViewController= VC;//设置根控制器



Could not find a storyboard named ‘main‘ in bundle NSBundle

报错原因:没有找到名称为main 的storyboard   默认是Main.storyboard

解决方案:UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"main"bundle:nil];m改成大写



CUICatalog: Invalid asset name supplied: (null)

报错原因:Incompatible pointer types sending ‘UIImage *‘ to parameter of type ‘NSString * _Nonnull‘

模型类型与视图使用模型设置数据时不匹配

解决方案: 检查模型类型,使得视图对象里使用其时一致。



错误描述 :  Static table views are only valid when embedded in UITableViewController instances

错误原因 : 错误的使用了talbe View的静态cell , 静态的cell只能在 UITableViewController 的实例对象 中使用

解决方案 : 使用动态的cell   ,在table View的属性content 中选择Dynamic prototypes



configureCellForDisplay:forIndexPath没有绑定Identifier

错误描述:-[UITableView _configureCellForDisplay:forIndexPath:]

Terminating app due to uncaught exception ‘NSInternalInconsistencyException‘, reason: ‘UITableView后面一堆UITableView的属性

错误原因:没有分配,绑定cellForRowAtIndexPath方法中对象cell的ID,导致对象没有创建

解决方案:分配,绑定storyboard中tableViewCell的属性ID同创建cellID



[约束警告] Unable to simultaneously satisfy constraints. 可能有重复约束

原因:系统自动判断 代码 和 编辑器中可能有重复约束,可能会出错

Probably at least one of the constraints in the following list is one you don‘t want.

Try this:

(1) look at each constraint and try to figure out which you don‘t expect;

(2) find the code that added the unwanted constraint or constraints and fix it.

(

解决方案:修改某个对象约束的优先级



setValue:forUndefinedKey:]:this class is not key value coding-compliant for the key xxxx

原因:模型的属性和plist文件不匹配

根本原因:属性缺失错误key后面的XX         //找属性,数据类型,基本数据类型是不是多了*

1.找不到同名的plist数据和模型属性

改正:修改plist或模型的名称保持一致

2.模型不是指针类型的写了*号

改正:修改模型的类型或者去掉*号

原因:xib文件没有选择(链接)视图名称 导致模型给视图赋值报错e.g.shopView.shop= shop;

解决方案:修改xib的Custom Class


报错描述:Failed to instantiate the default view controller for UIMainStoryboardFile ‘Main‘ - perhaps the designated entry point is not set?

报错原因:没有设置指向控制器的箭头 is Inital View Controller

解决方案:属性页面 View Controller 设置is Inital View Controller为YES



变量冲突 copyWithZone unrecognized selector sent to instance

报错描述:-[UILabel copyWithZone:]: unrecognized selector sent to instance 0x7fff21746b20

报错原因 :属性和变量名冲突

解决方案:修改属性或者变量名



坏指针 使用代理方法时EXC_BAD_ACCESS

错误描述:

错误原因:写错了 让代理执行代理方法前的判断语句,写成了执行语句.

if([self.delegateperformSelector:@selector(addVC:andAdditem:)]) {

GLaddItem*additem = [GLaddItemaddItemWithName:self.nameTextF.textandNum:self.tellTextF.text];

[self.delegateaddVC:selfandAdditem:additem];

[self.navigationControllerpopViewControllerAnimated:YES];

}

解决方案:把performSelector方法改成respondsToSelector

if([self.delegaterespondsToSelector:@selector(addVC:andAdditem:)]) {

GLaddItem*additem = [GLaddItemaddItemWithName:self.nameTextF.textandNum:self.tellTextF.text];

[self.delegateaddVC:selfandAdditem:additem];

[self.navigationControllerpopViewControllerAnimated:YES];

}



坏指针 EXC_BAD_ACCESS      Conflicting return type in implementation of ‘addItem‘: ‘数据类型x‘ vs ‘返回值‘

错误描述: Conflicting return type in implementation of ‘addItem‘: ‘GLaddItem *‘ vs ‘void‘

运行时 , 访问变量时 , 导致坏指针

错误原因: 定义的方法名和变量名重复

解决方案:修改方法名或变量名称



loaded the ’xxx’ view outlet was not set

错误描述‘-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "GLEditController" nib but the view outlet was not set.‘

报错原因:通过xib描述的控制器没有连续view

解决方案: 在xib中连接Owner的view



Incompatible pointer to integer conversion assigning to ‘UITableViewCellSeparatorStyle‘ (aka ‘enum UITableViewCellSeparatorStyle‘) from ‘UISwitch *‘

提示 赋值不正确,对象应该是个枚举值



isEqualToString,length 模型类,模型对象使用混乱

-[GLWine isEqualToString:]

-[GLWine length]: unrecognized selector sent to instance

错误原因:赋值了不正确的对象 模型数组里面是模型类对象,不是模型对象

解决方法:先创建模型类对象,再使用模型对象

GLWine*wine =self.wines[indexPath.row];

cell.imageView.image= [UIImageimageNamed:wine.image];



字典转模型没有值,报错[__NSCFString objectForKeyedSubscript:] [__NSCFDictionary length]

没有值:

1.控制器重写模型数组的get方法中首先没有初始化数组

_wines= [NSMutableArrayarray];没初始化添加的对象为空null

2[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance

[__NSCFDictionary length]: unrecognized selector sent to instance

Incompatible pointer types assigning to ‘NSString *‘ from ‘NSDictionary *‘

报错原因:没有写完整字典,注意在模型对象中用字典赋值的字典书写完整性,forin一般是遍历数组,

解决方法:检查字典书写完整性,并根据数据源(plist或网络)修改

tip提示:若是字典里dict[@"cars”]字典key输入不正确,只会导致没有数据然而不会报错.



tableView代理对象没有实现方法

[ViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance

0.代理对象没有声明对应的协议

Assigning to ‘id _Nullable‘ from incompatible type ‘ViewController *const __strong‘self.tableView.dataSource=self;或者拖线给控制器(其他代理对象)

1.代理对象没有实现必须实现的协议方法1

Method ‘tableView:numberOfRowsInSection:‘ in protocol ‘UITableViewDataSource‘ not implemented

2.代理对象没有实现必须实现的协议方法2

Method ‘tableView:numberOfRowsInSection:‘ in protocol ‘UITableViewDataSource‘ not implemented-[ViewController tableView:numberOfRowsInSection:]

3.代理对象没有实现必须实现的协议方法3Method ‘tableView:cellForRowAtIndexPath:‘ declared here

-[UITableView _configureCellForDisplay:forIndexPath:]

解决方法 必须实现:

-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView//不实现返回1

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section

-(UITableViewCell*)tableView



写错标点

报错:  Expected ‘]’ or ‘,’

原因:  1.数组连接符号用错                             解决方案:需要用 , 逗号链接

2.数组最后一个元素写了连接符号        解决方案:去掉最后一个元素后的连接符号

3.Expected ‘;’ after expression  简写数组,最后没有写分号     解决方案:加上语句结束符号 ;



约束错误

Unable to simultaneously satisfy constraints.

Probably at least one of the constraints in the following list is one you don‘t want.

Try this:

(1) look at each constraint and try to figure out which you don‘t expect;

(2) find the code that added the unwanted constraint or constraints and fix it.

无法同时满足的约束。

可能至少在以下列表中的约束之一是一个你不想要。

试试这个: (1) 看看每个约束和试着去弄了,你不会指望;

(2) 找到添加不必要的约束或限制的代码并修复它。

错误原因1://把A对象的底部等于B右边,对应连线找不到

make.bottom.equalTo(blueView.right);

错误原因2://同一个对象重复写了同一个约束

make.top.equalTo(blueView.top);

make.top.equalTo(blueView.bottom);



Could not load NIB in bundle with name XXX

原因reason: ‘Could not load NIB in bundle: ‘NSBundle 找不到要读取的nib

(loaded)‘ with name ‘GLshopView‘‘

解决方案:把xib的名字改成何视图类名一样



Auto property synthesis will not synthesize property ‘title‘; it will be implemented by its superclass, use @dynamic to acknowledge intention

错误原因:自动属性合成不会合成属性title;它将由它的超类,使用承认意图 @dynamic 执行

UILabel...title

改正:UILabel不要使用title 作为属性标识符



No visible @interface for ‘NSArray<__kindof UIView *>‘ declares the selector ‘removeLastObject‘

错误原因:NSArray是不可变数组 不能使用删除最后一个元素

解决方案:使用NSMutableArray 或者[self.shoptable.subviews.lastObjectremoveFromSuperview];



-[__NSArrayM objectAtIndex:]: index 6 beyond bounds [0 .. 5]‘

-[__NSArrayM objectAtIndex:]: index 6 beyond bounds [0 .. 5]‘ -[__NSArrayM objectAtIndex:]: index 6 beyond bounds [0 .. 5]‘

index 0 beyond bounds for empty array

错误原因:数组下标越界了

解决方案:打印检查数组的个数,并根据需要修改



unrecognized selector sent to instance

原因:调用了一个不存在的方法,方法被删掉/注释/名称修改

解决:认真检查方法名,使用正确并且存在的方法名



not key value  for the key... 多余连线

原因:IBOutlet属性代码被删掉/注释了,但是属性连线还在

根本原因:属性缺失错误key后面的XX         //找属性

解决:将storyboard残留的连线删掉,或在把线连上



Receiver type ‘NSTextAlignment‘ (aka ‘enum NSTextAlignment‘) is not an Objective-C class

错误原因 :is not an Objective-C class属性返回值是个枚举,后面写了个类调用方法

解决方案:直接写枚举值

链接:https://www.jianshu.com/p/12babc2cc406
來源:简书

原文地址:https://www.cnblogs.com/xjf125/p/9494737.html

时间: 2024-10-12 14:43:06

xcode上编译c语言程序报错:ld: x duplicate symbol for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)的相关文章

Xcode真机报错clang: error: linker command failed with exit code 1 (use -v to see invocation)

出现这种错误,如下图所示,搜索bitcode,置为NO即可.

[问题]编译报错:clang: error: linker command failed with exit code 1及duplicate symbol xxxx in错误解决方法之一

今天添加了一个新类(包括m,h,xib文件),还没有调用,-编译遇到如下错误,根据错误提示, duplicate symbol param1 in: /Users/xxxx/Library/Developer/Xcode/DerivedData/xxxx-ccqyiywbeowkgmaitropkiovpeou/Build/Intermediates/xxxx.build/Debug-iphonesimulator/xxxx.build/Objects-normal/x86_64/ClassA.

linker command failed with exit code 1 (use -v to see invocation),经典Xcode编译错误的出现和解决!

linker command failed with exit code 1 (use -v to see invocation)这个肯定是个xcode编译运行的时候经典的报错了. 这个问题曾经在我的项目编译和运行的时候多次出现,但是从来没有记录过.现在就想每次出现对它进行一下记录,这样为以后出现同样的问题的时候让自己也有个更加快速的方法找到解决之路. linker command failed with exit code 1 (use -v to see invocation)有很多种情况,

iOS 报错: linker command failed with exit code 1 (use -v to see invocation) 原因

在iOS开发中,很多人会遇到这样的报错 linker command failed with exit code 1 (use -v to see invocation) 可能的原因如下: 1.引用出错,把***.h弄成了.m,检查一下你的所有引用: 2.再就是你引用第三方的库,你添加文件是系统没有所第三方库的.m文件参入的编译中去,你向项目添加文件得注意了; 3.找到Build settings->Linking->Other Linker Flags,将此属性修改成-all_load或-O

iOS Xcode: linker command failed with exit code 1 (use -v to see invocation) 处理方法

刚刚转入iOS的开发,感觉还是挺吃力的,对于复杂界面的绘制比较困难.话不多说,转入正题... 今天又遇到“linker command failed with exit code 1 (use -v to see invocation)”的问题, 最让我郁闷的是Xcode并不会指出具体错误的代码,这让一个新手找问题,变得更加困难, 下面大概总结一下我遇到的错误吧: 1. Storyboard 里链接或者使用的图片不存在. 解决:去掉Storyboard里使用到的图片即可. 2. 定义的类名与图片

iOS真机测试友盟碰到错误linker command failed with exit code 1 (use -v to see invocation) 百度地图的检索失败 sqlite 错误码

因为友盟不支持bitcode 在模拟器上运行正常,但是在模拟器上就会报错,这是因为xocde7之后增加了一个bitcode,bitcode是被编译程序的一种中间形式的代 码.包含bitcode配置的程序将会在App store上被编译和链接.bitcode允许苹果在后期重新优化程序的二进制文件,而不需要重新提交一个新的版本到App store上. 碰到以上问题,我们有两种解决方式,要么关闭bitcode要么让第三方支持bitcode,我们这里讲第一种,配置bitcode,我们可以 在”Build

iOS 编译错误 linker command failed with exit code 1 use v to see invocation

有时多人开发,从svn上checkout代码下来后,会报这样的错误,这个时候很有可能是.a文件的问题,查看项目中的.a文件,特别是你用到的第三方库,pod文件,看看有没有报红的文件,如图显示 有的话,找到对应的.a文件,加到项目中对应的文件位置就行了.

iOS:编译错误 linker command failed with exit code 1 (use -v to see invocation)

将project不加入.m要求加入 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzI0MzQ2OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 版权声明:本文博客原创文章.博客,未经同意,不得转载.

“linker command failed with exit code 1”文件路径发生改变使编译出错时

出现( linker command failed with exit code 1)错误 这种问题,通常出现在添加第三方库文件或者多人开发时. 这种问题一般是找不到文件而导致的链接错误. 我们可以从如下几个方面着手排查. 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误. Undefined symbols for architecture armv7: "_OBJC_CLASS_$_MyPageLogViewController", referenced from