首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接iOS客户端问题

链接iOS客户端问题
EN

Stack Overflow用户
提问于 2013-05-02 17:04:33
回答 1查看 1.4K关注 0票数 3

这个问题产生于这样一个事实:我并不完全理解iOS中的静态库,而谷歌的文档似乎有点稀疏。

我正在尝试使用作为我的移动后端。

我为客户端库生成.m和.h文件。然后我创建了一个新项目(OwnItApi),将libGTLTouchStaticLib.一个静态库从GTL.proj拖到这个新项目。然后我将生成的文件.m和.h文件添加到这个项目中。我将所有.m文件添加到编译源代码中,然后将头文件复制文件。在“构建设置”中,我将"-ObjC -all_load“添加到其他链接器标志项中。

更新:--我忘了提到,我也将标头从GTL.proj复制到OwnItAPI项目。这些文件包括GTLBase64.h、GTLBatchQuery.h、GTLBatchResult、h等。我认为我必须这样做,因为没有它们构建就失败了。

如果没有标头,我得到:导入语句上的错误“‘GTLObject.h’文件未找到。”。

然后,我使用这个项目生成的静态库,并将其添加到我的主要项目中,其目标是iphone应用程序。为了测试API是否有效,我将其添加到中

代码语言:javascript
复制
#import "OwnItApi/GTLServiceOwnit.h"
#import "OwnItApi/GTLQueryOwnit.h"
#import "OwnItApi/GTLOwnitApiBrands.h"

这是在应用程序中:didFinishLaunchingWithOptions: function

代码语言:javascript
复制
static GTLServiceOwnit *service = nil;
if (!service) {
    service = [[GTLServiceOwnit alloc] init];
    service.retryEnabled = YES;
    [GTMHTTPFetcher setLoggingEnabled:YES];
}

GTLQueryOwnit *query = [GTLQueryOwnit queryForBrandsListWithUserID:@"venkat"];
[service executeQuery:query completionHandler:^(GTLServiceTicket *ticket,    GTLOwnitApiBrands *object, NSError *error) {
    NSArray *items = [object brands];;
    NSLog(@"%@", items);
}];

当我编译时,会得到以下重复错误:

代码语言:javascript
复制
duplicate symbol _OBJC_METACLASS_$_GTLOwnitApiBrand in:
/Users/vrao/Library/Developer/Xcode/DerivedData/Own_It!-ertvnctptaddricdrjyrmgemzgsh/Build/Products/Release-iphoneos/libOwnItApi.a(GTLOwnit_Sources.o)

17个看起来像这样的错误。然后最后

代码语言:javascript
复制
clang: error: linker command failed with exit code 1 (use -v to see invocation)

更新:在GTL项目中,libGTLTouchStaticLib.a在构建它之后是红色的,当我右键单击它时,"Show“是灰色的。要找到.a文件,我使用"GTL.framework“的"Show”,然后返回一个文件夹来查找libGTLTouchStaticLib.a。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-02 18:47:05

我相信您看到了您所看到的问题,因为您还包括GTLOwnit_Sources.m文件。您可以从包含的文件列表中省略此内容。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16343785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档