国产黄色免费网站_久久天天做天天爱综合色_精品国产一区久久久_成人黄色激情网站_久久成人在线视频_美女一区二区在线观看_亚洲精品免费一区亚洲精品免费精品一区 _91精品国产综合久久精品麻豆

Emscripten教程之emcc編譯命令

2020-4-14    seo達人

語法


emcc [options] file ...

這個輸入文件file,既可以是clang可以編譯的C/C++語言,也可以是二進制形式的llvm bitcode或者人類可讀形式的llvm assembly文件。

參數

大部分clang或者gcc的選項(option)都是可以工作的,比如:

# 顯示信息 emcc --help # 顯示編譯器版本信息 emcc --version

如果想看當前Emscripten中clang版本支持的全部選項列表,可以直接使用命令:
clang --help.

emcc修改的或者emcc中新的選項列在下面:

首先是一些編譯優化flag,它們-O0,-O1,-O2,-Os,-Oz,-O3。

-O0:
不進行編譯優化(這是默認情況)。當你剛開始移植項目是推薦使用它,因為它會包含許多斷言。

-O1:
簡單優化。推薦你在既想縮短編譯時間又想編譯優化時使用。它畢竟比-O2級別的優化編譯起來快多了。它會進行asm.js和llvm的-O1進行優化,它會relooping,會刪除運行時斷言和C++異常捕獲,它也會使得-s ALIASING_FUNCTION_POINTERS=1。

想要C++異常捕獲重新可用,請設置:-s DISABLE_EXCEPTION_CATCHING=0。

-O2:
和-O1類似,不過多了JavaScript級別的優化以及一些llvm -O3的優化項。當你想發布項目的時候,推薦使用本級別優化。

-O3:
和-O2類似,不過比-O2又多了一些JavaScript優化,而且編譯時間明顯比-O2長。這個也推薦在發布版本的時候使用。

-Os:
和-O3類似,不過增加了額外的優化以減小生成的代碼體積,代價是比-O3性能差一點。-Os優化會同時影響llvm bitcode 和JavaScript文件的生成。

-Oz:
和-Os類似,不過進一步減小了代碼體積。

-s OPTION=VALUE
傳給編譯器的所有涉及到JavaScript代碼生成的選項。選項列表,請見settings.js。

對于某個選項的值,不僅可以直接在emcc命令行里面設定,也可以把他們寫成json文件。比如下面,就是將DEAD_FUNCTIONS選項的值放到了path/to/file文件里,emcc里面傳這個文件的路徑。

-s DEAD_FUNCTIONS=@/path/to/file
note: 1、文件內容可以是:["_func1","_func2"]; 2、文件路徑必須是絕對的,不能是相對的。

-g:
這是保留調試信息flag。

  • 如果只是編譯到bitcode,那就和clang和gcc中的-g一樣。
  • 如果是要編譯到JavaScript,-g就等于-g3。

-g<level>
控制打印的調試信息數量,每一個level都是在前一個level的基礎上編譯的:

  • -g0:不保留調試信息。
  • -g1:保留空格,不壓縮。
  • -g2:保留函數名。
  • -g3:保留變量名,與-g同。變量名一般不是必須編譯后保留的,但是如果保留了,可以推斷變量的目的,對吧。
  • -g4:保留llvm 調試信息,這是能調試的最高級別。
note:
優化級別越高,編譯時間越長

--profiling:

--profiling-funcs:

--tracing:
啟用Emscripten的tracing API。

--emit-symbol-map:

--js-opts<level>:
允許JavaScript優化,有兩個值:
0:不允許JavaScript優化器允許;
1:使用JavaScript優化器。
通常用不到我們設置這一項, 因為設置-O后面的level的時候,這個項就能順便取到一個合適的值。

note:
有些選項會重寫這個flag的值,比如EMTERPRETIFY, DEAD_FUNCTIONS, OUTLINING_LIMIT, SAFE_HEAP 和 SPLIT_MEMORY會將js-opts=1,因為他們依賴js優化器。

--llvm-opts<level>:
啟用llvm優化。它的取值有有:

  • 0:不使用llvm優化
  • 1:llvm -O1優化
  • 2:llvm -O2優化
  • 3:llvm -O3優化

和--js-opts<level>一樣,通常用不到我們設置這一項, 因為設置-O后面的level的時候,這個項就能順便取到一個合適的值。

--llvm-lto<level>:
啟用llvm 連接時 優化。可以取值0,1,2,3。

--closure <on>:
運行壓縮編譯器(Closure Compiler),可能的取值有,0,1,2:

  • 0:是不啟用壓縮編譯器。
  • 1:啟用。
  • 2:啟用。

--pre-js <file>
生成代碼前,指定一個要把內容添加進來的文件。

--post-js <file>
生成代碼后,指定一個要把內容添加進來的文件。

--embed-file <file>
指定一個帶路徑的文件嵌入到編譯生成的js代碼里。路徑是相對于編譯時的當前路徑。如果傳的是一個目錄,則目錄下所有文件的內容都會被嵌入到將來生成的js代碼中。

--preload-file <name>
異步運行編譯代碼前,指定一個預加載的文件。路徑是相對于編譯時的當前路徑。如果傳的是一個目錄,則目錄下所有文件的內容都會被預加載到一個.data文件中。

--exclude-file <name>
從 –embed-file and –preload-file后面的目錄中排除一些文件,支持使用通配符*。

--use-preload-plugins
告訴文件打包器當文件加載時,運行預加載插件。它用來執行諸如使用瀏覽器解碼器解碼圖片和音頻等。

--shell-file <path>
指定要生成HTML的模板文件。

--source-map-base <base-url>

--minify 0
等于-g1。

--js-transform <cmd>
優化之前,生成代碼之后,設定這一條命令。這條命令可以讓你修改JavaScript代碼。之后,編譯器會將修改的和未修改的一起進行編譯優化。

--bind
啟用bingdings編譯源代碼。bingings是Emscripten中連接C++和JavaScript代碼的一類API。

--ignore-dynamic-linking
告訴編譯器忽視動態鏈接,之后用戶就得手動鏈接到共享庫。

--js-library <lib>
定義除了核心庫(src/library_*)以外的js庫。

-v
打開詳細輸出。
這個設置為把-v傳給clang,并且啟用EMCC_DEBUG生成編譯階段的中間文件。它也會運行Emscripten關于工具鏈的內部的完整性檢查。

tip: emcc -v是診斷錯誤的有用工具,不管你是否附加其他參數。

--cache

--clear-cache

--clear-ports

--show-ports

--save-bc PATH

--memory-init-file <on>
規定是否單獨生成一個內存初始化文件。取值包括0和1.

  • 0:不單獨生成.mem文件。
  • 1:單獨生成.mem文件。

-Wwarn-absolute-paths
啟用在-I和-L命令行指令中使用絕對路徑的警告。這是用來警告無意中使用了絕對路徑的。在引用非可移植的本地系統頭文件時,使用絕對路徑有時是很危險的。

--proxy-to-worker

--emrun
使生成的代碼能夠感知emrun命令行工具。當運行emran生成的應用程序時,這樣設置就允許stdout、stderr和exit(returncode)被捕獲。

--cpuprofiler
在生成的頁面上嵌入一個簡單的CPU分析器。使用這個來執行粗略的交互式性能分析。

--memoryprofiler
在生成的頁面上嵌入內存分配跟蹤器,使用它來分析應用程序Emscripten堆的使用情況。

--threadprofiler
在生成的頁面上嵌入一個線程活動分析器。當進行多線程編譯時,使用它來分析多線程應用程序。
--em-config

--default-obj-ext .ext

--valid-abspath path
設置一個絕對路徑的白名單,以防止關于絕對路徑的警告。

-o <target>
編譯輸出的文件格式。target可以取值為:

  • name.js:JavaScript文件;
  • name.html:HTML+js文件。把js單獨生成是為了減小頁面加載時間。
  • name.bc:llvm bitcode。這是默認值。
  • name.o:和上面一樣。
note:
如果你用了--memory-init-file,則還會從js文件中再單獨分出一部分代碼為.mem文件。

-c
生成llvm bitcode代碼,而不是JavaScript。

--separate-asm
把asm.js文件單獨生成到一個文件中。這樣可以減少啟動時的內存加載。

--output_eol windows|linux
規定生成的文本文件的行尾,如果是–output_eol windows,就是windows rn行尾,如果是–output_eol linux,則生成Linux行尾的文本文件。

--cflags

環境變量


emcc會受到幾個環境變量的影響,如下:

  • EMMAKEN_JUST_CONFIGURE
  • EMMAKEN_JUST_CONFIGURE_RECURSE
  • EMCONFIGURE_JS
  • EMCONFIGURE_CC
  • EMMAKEN_CXX
  • EMMAKEN_COMPILER
  • EMMAKEN_CFLAGS
  • EMCC_DEBUG

這幾個里面比較有意思的是EMCC_DEBUG。比如,如果你在編譯之前設置set EMCC_DEBUG=1,那么編譯的時候會把編譯過程的調試信息和編譯各個階段的中間文件輸出到一個臨時目錄,這算是給開發者提供一些編譯期間的幫助或者說調試信息吧。


Emscripten主題系列文章是emscripten中文站點的一部分內容。
第一個主題介紹代碼可移植性與限制
第二個主題介紹Emscripten的運行時環境
第三個主題第一篇文章介紹連接C++和JavaScript
第三個主題第二篇文章介紹embind
第四個主題介紹文件和文件系統
第六個主題介紹Emscripten如何調試代碼

日歷

鏈接

個人資料

藍藍設計的小編 http://www.newchinaweekly.com

存檔

涩涩视频在线播放| 97视频在线免费| 日韩无一区二区| 亚洲主播在线播放| 在线观看视频欧美| 亚洲摸下面视频| 欧美一区二区观看视频| 色综合天天综合网天天看片| 欧美一级免费大片| 欧美黑人视频一区| 久久精品中文字幕| 91精品视频免费看| 国产欧美综合一区| 蜜臀视频在线观看| 99精品视频99| 日韩欧美在线视频一区二区| 免费观看国产精品| 亚洲成熟女性毛茸茸| 波多野结衣电影在线播放| 先锋资源一区| 丝袜国产免费观看| 天堂网在线最新版www中文网| 国内精品麻豆美女在线播放视频| 深夜激情久久| 99视频一区| 久久一区亚洲| 精品一区二区三区日韩| 一区二区三区四区视频精品免费| 精品区一区二区| 精品成人一区二区三区四区| 精品在线欧美视频| 久久香蕉频线观| 奇米一区二区三区四区久久| 亚洲国产日韩综合一区| 中国特级黄色大片| 一级黄色录像大片| 69中国xxxxxxxxx69| 天堂在线中文资源| av在线播放网站| 少妇视频在线观看| 欧美在线播放| 卡一卡二国产精品 | 欧洲成人综合网| 老牛影视精品| 欧美三区视频| 亚洲免费观看视频| 欧美日韩久久一区| 国产精品成人aaaaa网站| 国产视频九色蝌蚪| 亚洲熟妇一区二区| 国产麻豆视频在线观看| 国产精品传媒在线观看| 天天色天天操天天| 超碰免费在线| 综合亚洲自拍| 久久一区二区三区四区五区| 亚洲va韩国va欧美va精品| 欧美激情手机在线视频| 欧美国产视频一区| 国产艳妇疯狂做爰视频| 国内精品偷拍视频| 污视频在线看| 成人日韩在线观看| 国产免费播放一区二区| 久久日韩粉嫩一区二区三区| 国产一区二区日韩| 日韩资源av在线| 成年人二级毛片| xxxxwwww在线免费观看| 免费看一区二区三区| 亚洲欧洲日本mm| 国产日韩欧美在线一区| 欧美另类变人与禽xxxxx| 亚洲精品日韩av| 国产精品久久久久久久无码| 无码人妻一区二区三区免费| 国产在线制服美女| 中文字幕日本一区二区| 91精品一区二区三区综合| 亚洲精品成人精品456| 韩国三级电影久久久久久| 久久久久久久久久久久久久国产| www.av欧美| 一级特黄色大片| av播放在线| 亚洲欧美日本日韩| 欧美成人r级一区二区三区| 日韩欧美在线一区二区| 99免费在线观看| 国产激情小视频| 好吊日视频在线观看| 亚洲精品九九| 亚洲精品在线免费观看视频| 在线日韩av永久免费观看| 好吊日免费视频| 九九在线免费视频| 欧美日韩一区二区三区在线电影| 另类小说欧美激情| 亚洲小视频在线| 女人另类性混交zo| 四虎www视频| 午夜视频成人| 欧美日韩久久精品| 国产精品美女久久久久久久久 | 大伊人狠狠躁夜夜躁av一区| 国产不卡一区二区三区在线观看| 国产精品无码专区av在线播放| 六月丁香色婷婷| 日韩精选视频| 亚洲视频中文字幕| 欧美成人精品在线观看| 日韩电影免费观看在| 精品无码一区二区三区的天堂| 黄色小网站在线观看| 国产精品一区三区| 亚洲精品一区二区三区香蕉| 国产av国片精品| 久草av在线播放| 精品无人区一区二区| 2022国产精品视频| 国产精品一区二区三| 国产精品999久久久| 免费av不卡| 99精品福利视频| 最好看的2019的中文字幕视频| www.久久com| av中文网站| 123区在线| 亚洲天堂福利av| 日本精品二区| 日韩一级中文字幕| 色狼人综合干| 亚洲资源中文字幕| 亚洲不卡一卡2卡三卡4卡5卡精品| 性欧美18一19性猛交| 欧洲美女少妇精品| 91亚洲精品乱码久久久久久蜜桃| 国产精品永久免费视频| 日韩三级免费看| 欧洲av不卡| 一本色道久久综合亚洲aⅴ蜜桃 | 成人网中文字幕| 一本加勒比波多野结衣| 一二三四在线视频观看社区| 美女视频黄免费的久久 | 深夜影院在线观看| av电影天堂一区二区在线 | 中文字幕综合一区| 欧美丰满美乳xxⅹ高潮www| 最新真实国产在线视频| 国产精品久久影院| 国产成人三级视频| 激情网址大全| 精品影视av免费| 成人在线看片| 男人插曲女人的视频| 一区二区蜜桃| 日韩午夜小视频| 亚洲一区二区中文字幕在线观看| 写真福利理论片在线播放| 成人aa视频在线观看| 98精品在线视频| 国产精品视频一区在线观看| 四虎成人精品一区二区免费网站| 欧美精品v日韩精品v韩国精品v| 国产精品久久久久久久99| 四虎影视在线观看2413| 国产精品美女久久福利网站| 国产香蕉一区二区三区| 俺去啦在线观看| 国产麻豆精品视频| 麻豆视频成人| 国产情侣激情自拍| 成人h在线观看| 日韩色视频在线观看| 最新中文字幕视频| 看黄在线观看| 日韩一区二区在线观看视频| 久久人人爽人人爽人人片 | 天天av导航| 成人在线一区二区三区| 中文精品一区二区三区| 黄色漫画在线免费观看| 欧美激情 亚洲a∨综合| 国产精品成人一区二区| 香蕉久久一区二区三区| 亚洲一区图片| 国产一区二区三区免费不卡| 品天堂xxxx高清| 亚洲无线视频| 欧美插天视频在线播放| 怡红院男人天堂| 久久久久毛片免费观看| 一区二区三区天堂av| 中文字幕精品三级久久久| 成人羞羞视频在线看网址| 亚洲奶大毛多的老太婆| 日本一区二区三区精品| 日韩欧美1区| 成人免费视频网站|