Xcode 6 上针对目标 C 的错误'Undefined symbols for architecture x86_64 '

error 'Undefined symbols for architecture x86_64 ' on Xcode 6 for Objective C

本文关键字:for symbols Undefined architecture x86 目标 Xcode 错误      更新时间:2023-10-16

我开始使用Xcode 6学习目标C。所以我是新手。我在网上学习了一些教程,并尝试了一些例子。我使用的是macosx10.9。到目前为止,我还没有犯这样的错误。我试过很多目标c代码。我在这里附上了我的编码。

主.m

#import <Foundation/Foundation.h>
#import "CarUtilities.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSDictionary *makesAndModels = @{
 @"Ford":@[@"Explorer",@"F-150"],
 @"Honda":@[@"Accord",@"Civic",@"Pilot"],
 @"Nissan":@[@"370Z",@"Altima",@"Versa"],
 @"Porsche":@[@"911 Trubo",@"Boxter",@"Cayman S"]
 };
 NSString *randomCar = CUGetRandomMakeAndModel(makesAndModels);
 NSLog(@"Selected a %@",randomCar);
}
return 0;
}

//CarUtilities.m

#进口#导入"CarUtilities.h"

//private function declaration
static id getRandomItemFromArray(NSArray *anArray);

//公共功能实现

NSString *CUGetRandomMake(NSArray *makes){
return getRandomItemFromArray(makes);
}
NSString *CUGetRandomModel(NSArray *models){
return getRandomItemFromArray(models);
}
NSString *CUGetRandomMakeAndModel(NSDictionary *makesAndModels){
NSArray *makes = [makesAndModels allKeys];
NSString *randomMake = CUGetRandomeMake(makes);
NSArray *models = makesAndModels[randomMake];
NSString *randomModel = CUGetRandomeModel(models);
return [randomMake stringByAppendingFormat:@" %@",randomModel];
}
//private function implementation
static id getRandomItemFromArray(NSArray *anArry){
int maximum = (int) [anArry count];
int randomIndex = arc4random_uniform(maximum);
return anArry[randomIndex];
}
CarUtilities.h
#import <Foundation/Foundation.h>
NSString *CUGetRandomeMake(NSArray *makes);
NSString *CUGetRandomeModel(NSArray *models);
NSString *CUGetRandomMakeAndModel(NSDictionary *makesAndModels);

当我尝试运行此代码时,我遇到了以下错误。

Ld/Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities govahlvyjxsayfaxlkirwewmwocg/Build/Products/Debug/CarUtilities normal x86_64cd/ObjectiveC/CarUtilitiesexport MACOSX_DEPLOYMENT_TARGET=10.9/Applications/Xcode6-Beta6.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang-arch x86_64-isysroot/Applications/Xcode6-Beta6.pp/Contents/Developer/Platforms/MacOSX.platform/Develer/SDKs/MacOSX10.10.sdk-L/Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities govahlvyjxsayfaxlkirwewewewmwocg/Build/Products/Debug-F/Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities govahlvyjxsayfaxljirwewmwocg/Build/Products/Debug-filelist/Users/samudr jkumara/Library/DDeveloper/Xcode/DerivedData_/CarUtilities govhlvyjxsayFaxljilwewewewmwocg/Build/Mintermediates/CarUtilities.Build/Dubug-CarUtilities.uild/Objects-normal/x86_64/CarUtilities.LinkFileList-mmacosx版本min=10.9-fobjc arc-fobj链接运行时-Xlinker-dependency_info-Xlinker/Users/samudrjkumara/Library/Developer/Xcode/DerivedData/CarUtilities govahlvyjxsayfaxljirwewmwocg/Build/Inmediates/CarUtilities.Build/Debug-CarUtilities.Build/Objects-normal/x86_64/CarUtilities _dependency_info.dat-o/Users/samudr jkumara/Librare/Developer/Xcode/DerivedData\CarUtilities govehlvyjxslayfaxl jirwewewewewocg/Build/Products/Debug/CarUtility

体系结构x86_64的未定义符号:"_CUGetRandomeMake",引用自:_CarUtilities中的CUGetRandomMakeAndModel"_CUGetRandomModel",引用自:_CarUtilities中的CUGetRandomMakeAndModel``ld:找不到体系结构x86_64的符号clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我哪里出了问题。请在这方面提供帮助,因为我是Xcode和Objective C.的新手。

我认为这个问题与项目构建设置有关。

在您的目标构建设置中,请检查是否在架构子视图下:

"Architecture" includes all supported architectures. (including arm64)
"Build active architecture only": NO.

没有足够的repo来添加图像。所以请查看这篇文章的图片:

Xcode 5和iOS 7:架构和有效架构

字体:

NSString *CUGetRandomMake(NSArray *makes){
    return getRandomItemFromArray(makes);
}
...
NSString *randomMake = CUGetRandomeMake(makes);
//                                ^

与CCD_ 1相同。

相关文章: