0

我收到一个错误:

ld: library not found for -lOCMock
clang: error: linker command failed with exit code 1 (use -v to see invocation)

详细错误:

Ld /Users/akashpatel/Library/Developer/Xcode/DerivedData/RideShareBuddy-cqfdiphwubeiexdigypzpjjfqaiy/Build/Products/Debug-iphonesimulator/RideShareBuddyTests.app/RideShareBuddyTests normal i386
cd "/Users/akashpatel/Documents/iOS development/RideShare/RideShare"
setenv IPHONEOS_DEPLOYMENT_TARGET 6.1
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk -L/Users/akashpatel/Library/Developer/Xcode/DerivedData/RideShareBuddy-cqfdiphwubeiexdigypzpjjfqaiy/Build/Products/Debug-iphonesimulator "-L/Users/akashpatel/Documents/iOS development/RideShare/RideShare/RideShare" -F/Users/akashpatel/Library/Developer/Xcode/DerivedData/RideShareBuddy-cqfdiphwubeiexdigypzpjjfqaiy/Build/Products/Debug-iphonesimulator "-F/Users/akashpatel/Documents/iOS development/RideShare/RideShare" -filelist /Users/akashpatel/Library/Developer/Xcode/DerivedData/RideShareBuddy-cqfdiphwubeiexdigypzpjjfqaiy/Build/Intermediates/RideShareBuddy.build/Debug-iphonesimulator/RideShareBuddyTests.build/Objects-normal/i386/RideShareBuddyTests.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -ObjC -all_load -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=6.1 -framework QuartzCore -framework GHUnitIOS -framework UIKit -framework Foundation -framework CoreGraphics -lOCMock -o /Users/akashpatel/Library/Developer/Xcode/DerivedData/RideShareBuddy-cqfdiphwubeiexdigypzpjjfqaiy/Build/Products/Debug-iphonesimulator/RideShareBuddyTests.app/RideShareBuddyTests

我没有重复的文件Compile Sources

询问是否需要更多详细信息。

编辑 :

#import <GHUnitIOS/GHUnit.h>
#import "OCMock.h"
#import "RS_LoginRSViewController.h"

@interface RS_LoginRSViewControllerTest : GHTestCase
{
    RS_LoginRSViewController * loginObject;
}
@end

@implementation RS_LoginRSViewControllerTest

// Run before each test method
- (void)setUp { }

// Run after each test method
- (void)tearDown { }

// Run before the tests are run for this class
- (void)setUpClass
{
    loginObject = [[RS_LoginRSViewController alloc] init];
    GHAssertNotNil(loginObject, @"Could not create test object.");
}

// Run before the tests are run for this class
- (void)tearDownClass { }

- (void)testViewDidLoad
{
    GHTestLog(@"Log with a test with the GHTestLog(...) for test specific logging.");
}

@end

Library search path在和中添加了一个路径Header search path。它又引发了一个错误。

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_RS_LoginRSViewController", referenced from:
      objc-class-ref in RS_LoginRSViewControllerTest.o
     (maybe you meant: _OBJC_CLASS_$_RS_LoginRSViewControllerTest)
4

2 回答 2

0

首先,我需要设置Library search path,如此链接Header search path所示。Adding OCMock->step 3

之后为了解决我的Undefined symbol错误,我不得不将所有类添加到测试目标。要了解如何将文件添加到特定目标,请查看SO question

于 2013-10-15T05:05:10.713 回答
0

我不想拖动评论部分,因为它已经达到了限制......我怀疑你导入第三方框架(如 OCMock)的方式是错误的......

由于您已经从 raywenderlich 下载了示例只需将其 builsettings 部分与您的实际项目进行比较...

检查这些链接1和链接2 ..此外,它可能与您正在寻找的内容重复...

于 2013-08-13T09:03:43.940 回答