2016-06-01 57 views
1

我有一個源文件,實際上它是一個Google API庫。爲什麼輸入.m文件?

它有GTLCommon_Sources.m此代碼:

#if defined(__has_feature) && __has_feature(objc_arc) 
#error "This file needs to be compiled with ARC disabled." 
#endif 

#import "Objects/GTLBatchQuery.m" 
#import "Objects/GTLBatchResult.m" 
#import "Objects/GTLDateTime.m" 
#import "Objects/GTLErrorObject.m" 
#import "Objects/GTLObject.m" 
#import "Objects/GTLQuery.m" 
#import "Objects/GTLRuntimeCommon.m" 
#import "Objects/GTLService.m" 
#import "Objects/GTLUploadParameters.m" 

#import "Utilities/GTLBase64.m" 
#import "Utilities/GTLFramework.m" 
#import "Utilities/GTLJSONParser.m" 
#import "Utilities/GTLUtilities.m" 

然而,嘗試構建它,對GTLCommon_SourcesGTLJSONParser重複的符號結果。我試圖將源文件更改爲#import "Utilities/GTLJSONParser.h"而不是#import "Utilities/GTLJSONParser.m",重複的符號錯誤消失。

任何人都可以建議爲什麼這個庫導入.m文件?雖然AFAIK,我們總是導入.h文件。

+0

您是否在您的項目中搜索到只有這兩個文件的一個副本? – NeverHopeless

回答

2

這只是一個方便的方式來構建所有的源文件,而不必將它們全部包含在您的項目中。見the documentation

您可以將GTL庫 源直接編譯到您自己的項目中,而不是鏈接到GTL框架。爲此,請查找庫的 GTLCommon_Sources.m和GTLCommon_Networking.m文件,然後將 文件拖到項目的窗口中。

那麼庫的源文件夾添加到您的項目的構建設置頁眉搜索路徑進入 :來源,來源/對象, 源/公用事業,DEPS/GTM-會話提取器/源, 的DEP/GTM-的oauth2/Source,Deps/gtm-oauth2/Source/Touch(或 Deps/gtm-oauth2/Source/Mac)。

對於工作,不要添加任何其他的其他來源(GTLBatchQuery.m等)到項目中。

+0

謝謝zpasternack!然而,我發現了另一個問題,如果你可以幫助這裏http://stackoverflow.com/questions/37563249/google-api-gtmoauth2viewcontrollertouch-not-found :) – Rendy

相關問題