国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Gradle 1.12用戶指南翻譯——第五十四章. 構建原生二進制文件

2019-11-08 02:39:59
字體:
來源:轉載
供稿:網友
其他章節的翻譯請參見:http://blog.csdn.net/column/details/gradle-translation.html翻譯項目請關注Github上的地址:https://github.com/msdx/gradledoc本文翻譯所在分支:https://github.com/msdx/gradledoc/tree/1.12。直接瀏覽雙語版的文檔請訪問:http://gradledoc.qiniudn.com/1.12/userguide/userguide.html。另外,Android 手機用戶可通過我寫的一個程序瀏覽文檔,帶緩存功能的,目前0.5版本兼容 Android 2.3以上系統,項目地址如下:https://github.com/msdx/gradle-doc-apk翻譯不易,轉載請注明本文在CSDN博客上的出處:http://blog.csdn.net/maosidiaoxian/article/details/55683474

關于我對Gradle的翻譯,以Github上的項目及http://gradledoc.qiniudn.com 上的文檔為準。如發現翻譯有誤的地方,將首先在以上兩個地方更新。因時間精力問題,博客中發表的譯文基本不會同步修改。

另外,目前Gradle1.12版本的文檔進入校稿階段,校稿的方式可以為到該項目https://github.com/msdx/gradledoc 提交issue或是pull request。校稿的結果不只是在此版本更新,也會用于改善Gradle下一版本(2.0)文檔的翻譯。

第五十四章. 構建原生二進制文件

Gradle 對構建原生二進制文件的支持目前還是孵化階段。請務必注意,在以后的 Gradle 版本中,相關的 DSL 和其他配置可能會有所改變。

不同的原生二進制插件添加了對從C++,C,Objective-C,Objective-C++以及匯編源文件構建原生軟件組件的支持。雖然對于這種軟件開發的空間,已經有許多優秀的構建工具存在,但是Gradle 向開發人員提供的是它的強大特征和靈活性,以及在依賴管理實踐上,在JVM開發空間上更為傳統的發現。

54.1. 工具鏈支持

Gradle 提供了使用不同的工具鏈執行相同的構建的能力。你可以通過更改操作系統的PATH讓其包含所需的工具鏈編譯器,來控制使用哪個工具鏈。或者,你可以直接配置工具鏈,就如下面的“原生二進制變種”中描述的。

支持以下的工具鏈:

操作系統工具鏈備注
linuxGCC 
LinuxClang 
Mac OS XGCC使用 XCode 中的 GCC。
Mac OS XClang使用 XCode 中的 Clang。
WindowsVisual C++Windows xp及以上,Visual C++ 2010 及以上版本。
WindowsGCCWindows XP及以上,使用Cygwin的GCC。
WindowsMinGWWindows XP 及以上。

54.2. 組件模型

一個原生二進制PRoject定義了一組ExecutableLibrary組件,每一個的 Gradle 都映射大量的NativeBinary輸出。對于每個定義的executablelibrary,Gradle 添加了具有相同名稱的FunctionalSourceSet 。這些功能源碼集將為project所支持的每一種語言包含指定語言的源碼集。

為構建一個靜態或共享的原生庫二進制文件,一個Library組件將添加到libraries容器中。每個library組件可以產生至少一個SharedLibraryBinary和至少一個StaticLibraryBinary

示例 54.1. 定義一個庫組件

build.gradle

build.gradle

ExecutableExecutableBinary$component.nameExecutable$buildDir/binaries/$binary.name/$component.nameLibrarySharedLibraryBinary$component.nameSharedLibrary$buildDir/binaries/$binary.name/lib$component.name.soLibraryStaticLibraryBinary$component.nameStaticLibrary$buildDir/binaries/$binary.name/$component.name.a

54.3.1. 使用共享庫

對于每個產生的可執行二進制文件, cpp插件提供了install${binary.name}任務,這個任務可以創建該可執行文件及它需要的共享庫的開發安裝。它允許你運行可執行文件,而無需在其最終的位置安裝共享庫。

544.核心語言支持: C、C++、匯編,Objective-C和Objective-C++

目前,Gradle 支持從C++,C,Assembler,Objective-C 和 Objective-C++源碼的任意組合中構建原生二進制文件。一個原生二進制project 將包含一個或多個叫做FunctionalSourceSet的實例(如"main","test"等),其中每一個都可以包含含有C++,C,Assembler,Objective-C或Objective-C++源代碼的LanguageSourceSets。

54.4.1. C++ 源代碼

'cpp' 插件提供了C++ 語言的支持。

示例 54.3. cpp 插件

build.gradle

build.gradle

'c' 插件提供了C 語言的支持。

示例 54.5. “C” 插件

build.gradle

build.gradle

“assembler” 插件提供了匯編語言的支持。

示例 54.3. assembler 插件

build.gradle

'objective-c' 插件提供了Objective-C 語言的支持。

示例 54.8. “objective-c”插件

build.gradle

'objective-cpp' 插件提供了Objective-C++ 語言的支持。

示例 54.9. “objective-cpp” 插件

build.gradle

build.gradle

build.gradle

build.gradle

build.gradle

build.gradle

build-resource-only-dll.gradle

build-resource-only-dll.gradle

build.gradle

build.gradle

build.gradle

build.gradle

build.gradle

build.gradle

build.gradle

build.gradle

build.gradle

Gcc

Clang

VisualCpp

示例 54.26. 定義工具鏈

build.gradle

suite_Operators.c

build.gradle

build.gradle

apply plugin: "c"apply plugin: "cunit"model {    flavors {        passing        failing    }    repositories {        libs(PrebuiltLibraries) {            cunit {                headers.srcDir "lib/cunit/2.1-2/include"                binaries.withType(StaticLibraryBinary) {                    staticLibraryFile = file("lib/cunit/2.1-2/lib/" + findCUnitLibForPlatform(targetPlatform))                }            }        }    }}libraries {    operators {}}binaries.withType(TestSuiteExecutableBinary) {    lib library: "cunit", linkage: "static"    if (flavor == flavors.failing) {        cCompiler.define "PLUS_BROKEN"    }}

注意︰ 此示例的代碼可以在Gradle 的 binary 或 source 分發包的samples/native-binaries/cunit中找到。。

> gradle -q runFailingOperatorsTestCUnitExeThere were test failures:  1. /home/user/gradle/samples/native-binaries/cunit/src/operatorsTest/cunit/test_plus.c:6  - plus(0, -2) == -2  2. /home/user/gradle/samples/native-binaries/cunit/src/operatorsTest/cunit/test_plus.c:7  - plus(2, 2) == 4:runFailingOperatorsTestCUnitExe FAILEDBUILD FAILEDTotal time: 1 secs

當前對 CUnit 的支持還是相當簡陋。未來的集成計劃包括:

允許測試聲明為 javadoc 風格的注解。

改進 HTML 報告,類似于 JUnit 提供的那樣。

測試執行的的實時反饋。

支持另外的測試框架。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平乐县| 盘锦市| 天门市| 阿克| 湟源县| 苍山县| 黑河市| 理塘县| 泾源县| 龙州县| 梨树县| 高平市| 甘泉县| 新河县| 仙居县| 无极县| 宣恩县| 新源县| 安吉县| 五峰| 高碑店市| 阿尔山市| 阆中市| 青铜峡市| 保定市| 保亭| 墨江| 胶南市| 唐河县| 陇西县| 双桥区| 江源县| 香格里拉县| 古浪县| 自治县| 珲春市| 阿瓦提县| 梨树县| 安多县| 烟台市| 沅陵县|