Google 日历 API - 架构 i386 的未定义符号
Google Calendar API - Undefined symbols for architecture i386
我正在尝试集成 Google 日历 API 2 天。我一直在关注 Google's Official Guide 的快速教程。到目前为止,我已经在不使用 Calendar API.
的情况下成功编译了我的工作区
当我尝试使用它时,出现以下链接器错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_GTLQueryCalendar", referenced from:
objc-class-ref in DashboardController.o
"_OBJC_CLASS_$_GTLServiceCalendar", referenced from:
objc-class-ref in DashboardController.o
"_deflate", referenced from:
l001 in GoogleSignIn(GTMNSData+zlib.o)
"_deflateEnd", referenced from:
l001 in GoogleSignIn(GTMNSData+zlib.o)
"_deflateInit2_", referenced from:
l001 in GoogleSignIn(GTMNSData+zlib.o)
"_inflate", referenced from:
l002 in GoogleSignIn(GTMNSData+zlib.o)
"_inflateEnd", referenced from:
l002 in GoogleSignIn(GTMNSData+zlib.o)
"_inflateInit2_", referenced from:
l002 in GoogleSignIn(GTMNSData+zlib.o)
"_kGTLAuthScopeCalendarReadonly", referenced from:
-[DashboardController createAuthController] in DashboardController.o
"_kGTLCalendarOrderByStartTime", referenced from:
-[DashboardController fetchEvents] in DashboardController.o
ld: symbol(s) not found for architecture i386
我已将 libGTLTouchStaticLib.a
添加到我的主项目中。此外,这些是子项目中的体系结构设置。
GTMSessionFetcher
GTL
我尝试使用的简单代码行是:
- (void)fetchEvents {
GTLQueryCalendar *query = [GTLQueryCalendar queryForEventsListWithCalendarId:@"primary"];
query.maxResults = 10;
query.timeMin = [GTLDateTime dateTimeWithDate:[NSDate date]
timeZone:[NSTimeZone localTimeZone]];;
query.singleEvents = YES;
query.orderBy = kGTLCalendarOrderByStartTime;
[self.service executeQuery:query
delegate:self
didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)];
}
终于解决了。我将路径 google-api-objectivec-client/Source/Services/Calendar/Generated/
中的所有 implementation (.m) files
复制到主项目中。我不需要复制头文件,因为 类 已经被检测到。
此外,我还需要添加 libz.dylib
框架来消除所有错误。 Google 也应该在他们的文档中提到这些步骤。
希望对以后的人有所帮助!
我正在尝试集成 Google 日历 API 2 天。我一直在关注 Google's Official Guide 的快速教程。到目前为止,我已经在不使用 Calendar API.
的情况下成功编译了我的工作区当我尝试使用它时,出现以下链接器错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_GTLQueryCalendar", referenced from:
objc-class-ref in DashboardController.o
"_OBJC_CLASS_$_GTLServiceCalendar", referenced from:
objc-class-ref in DashboardController.o
"_deflate", referenced from:
l001 in GoogleSignIn(GTMNSData+zlib.o)
"_deflateEnd", referenced from:
l001 in GoogleSignIn(GTMNSData+zlib.o)
"_deflateInit2_", referenced from:
l001 in GoogleSignIn(GTMNSData+zlib.o)
"_inflate", referenced from:
l002 in GoogleSignIn(GTMNSData+zlib.o)
"_inflateEnd", referenced from:
l002 in GoogleSignIn(GTMNSData+zlib.o)
"_inflateInit2_", referenced from:
l002 in GoogleSignIn(GTMNSData+zlib.o)
"_kGTLAuthScopeCalendarReadonly", referenced from:
-[DashboardController createAuthController] in DashboardController.o
"_kGTLCalendarOrderByStartTime", referenced from:
-[DashboardController fetchEvents] in DashboardController.o
ld: symbol(s) not found for architecture i386
我已将 libGTLTouchStaticLib.a
添加到我的主项目中。此外,这些是子项目中的体系结构设置。
GTMSessionFetcher
GTL
我尝试使用的简单代码行是:
- (void)fetchEvents {
GTLQueryCalendar *query = [GTLQueryCalendar queryForEventsListWithCalendarId:@"primary"];
query.maxResults = 10;
query.timeMin = [GTLDateTime dateTimeWithDate:[NSDate date]
timeZone:[NSTimeZone localTimeZone]];;
query.singleEvents = YES;
query.orderBy = kGTLCalendarOrderByStartTime;
[self.service executeQuery:query
delegate:self
didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)];
}
终于解决了。我将路径 google-api-objectivec-client/Source/Services/Calendar/Generated/
中的所有 implementation (.m) files
复制到主项目中。我不需要复制头文件,因为 类 已经被检测到。
此外,我还需要添加 libz.dylib
框架来消除所有错误。 Google 也应该在他们的文档中提到这些步骤。
希望对以后的人有所帮助!