我想在我的項目編譯的protobuf和Xcode 5
你成功編譯的protobuf和Xcode 5使用的protobuf(https://code.google.com/p/protobuf/),請幫忙分享您的經驗?
謝謝。
我想在我的項目編譯的protobuf和Xcode 5
你成功編譯的protobuf和Xcode 5使用的protobuf(https://code.google.com/p/protobuf/),請幫忙分享您的經驗?
謝謝。
如果您不介意自己創建Google Protobuf,那麼使用Cocoapods的一個好的選擇是在這裏運行bash腳本。
https://gist.github.com/BennettSmith/7150245
這個腳本會產生谷歌的Protobuf的正確構建,支持I386,ARMv7的,armv7s,arm64和x86_64架構。它將產生一個通用的靜態庫。它也將生成protoc編譯器,以便在OS X上使用。
通過將以下行添加到您的Podfile中,您可以使用Cocoapods將支持Google Protocol Buffers添加到Xcode 5項目。
pod 'GoogleProtobuf', '~> 2.5.0'
這會將C++版本的protobuf代碼放到您的項目的Pod中。它還會在項目中的文件夾Pods/GoogleProtobuf/bin/protoc
中添加protoc
編譯器。
您可以在自己的項目中創建自定義構建規則,該規則會自動將.proto
文件轉換爲.ph.{h,cc}
文件。以下是我如何做到這一點:
將生成規則設置爲「處理名稱匹配的源文件:* .proto使用自定義腳本」。該腳本應包括以下內容:
cd ${INPUT_FILE_DIR}
${SRCROOT}/Pods/GoogleProtobuf/bin/protoc --proto_path=${INPUT_FILE_DIR} ${INPUT_FILE_PATH} --cpp_out=${INPUT_FILE_DIR}/cpp
設置輸出文件,包括以下內容:
$(INPUT_FILE_DIR)/cpp/$(INPUT_FILE_BASE).pb.h
$(INPUT_FILE_DIR)/cpp/$(INPUT_FILE_BASE).pb.cc
任何.proto
文件,你在你的項目中包括現在會自動轉換爲C++,然後編譯爲部分你的構建。
謝謝!我會試一試。 –
我在這裏發現了一個解決方案的問題。在Cocoapod中完成的構建只能在iOS模擬器中使用。我正在爲此問題尋求解決方案。現在,您可以使用我在下面的備選答案中發佈的其他方法。 –
你好史密斯,我用CocoaPods for iPad製作了protobuf(2.4.1),它可以工作。我會看看你的新解決方案。謝謝! –
這個腳本就像一個魅力。謝謝!!! –
我只是想知道這個scipt能用於protobuf 2.4.1嗎?我可以刪除x86_64的版本(只需iOS版)。 –
我不確定2.4.1。是否有特定的原因使用該版本,而不是更新的2.5.0? –