EnglishFrenchSpanyol

Ad


Favicon OnWorks

emcc - Dalam talian di Awan

Jalankan emcc dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah perintah emcc yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


emcc - Bahagian hadapan penyusun Emscripten

DESCRIPTION


fail emcc [pilihan]...

jambatan biasa gcc/g++ pilihan akan kerja, Untuk contoh:
- membantu Paparkan maklumat ini

--versi
Paparkan maklumat versi pengkompil

Pilihan Bahawa adalah diubahsuai or baru in emcc termasuk:
-O0 Tiada pengoptimuman (lalai)

-O1 Pengoptimuman mudah, termasuk asm.js, LLVM -O1 pengoptimuman, dan tiada masa jalan
penegasan atau penangkapan pengecualian C++ (untuk mendayakan semula penangkapan pengecualian C++, gunakan -s
DISABLE_EXCEPTION_CATCHING=0 ). (Untuk butiran tentang kesan pilihan yang berbeza
level, lihat apply_opt_level() dalam tools/shared.py dan juga src/settings.js.) Nota:
Pengoptimuman hanya dilakukan apabila menyusun ke JavaScript, bukan untuk perantara
bitcode, *melainkan* anda membina dengan EMCC_OPTIMIZE_NORMALLY=1 (tidak disyorkan melainkan
anda tahu apa yang anda lakukan!)

-O2 As -O1, ditambah dengan relooper (rekreasi gelung), LLVM -O2 pengoptimuman, dan

-s ALIASING_FUNCTION_POINTERS=1

-O3 As -O2, serta pengoptimuman berbahaya yang mungkin memecahkan kod yang dijana! Ini menambah

-s FORCE_ALIGNED_MEMORY=1 -s DOUBLE_MODE=0 -s PRECISE_I64_MATH=0 --penutupan 1
--llvm-lto 1

Ini tidak disyorkan sama sekali. Idea yang lebih baik ialah mencuba setiap satu daripada ini secara berasingan
atas -O2 untuk melihat apa yang berkesan. Lihat wiki dan src/settings.js (untuk -s pilihan)
untuk maklumat lanjut.

-s PILIHAN=NILAI
Pilihan penjanaan kod JavaScript dihantar ke pengkompil emscripten. Untuk
pilihan yang tersedia, lihat src/settings.js Ambil perhatian bahawa untuk pilihan yang merupakan senarai, anda
memerlukan tanda petikan dalam kebanyakan kerang, contohnya

-s RUNTIME_LINKED_LIBS="['liblib.so']"

or

-s "RUNTIME_LINKED_LIBS=['liblib.so']"

(tanpa " luar dalam salah satu daripada itu, anda akan mendapat ralat)

Anda juga boleh menentukan fail dari mana nilai akan dibaca, contohnya,

-s DEAD_FUNCTIONS=@/path/to/file

Kandungan dari /path/to/file akan dibaca, JSON.parsed dan ditetapkan ke DEAD_FUNCTIONS
(supaya fail itu boleh mengandungi

["_func1", "func2"]

). Ambil perhatian bahawa laluan mestilah mutlak, bukan relatif.

-g Gunakan maklumat nyahpepijat. Ambil perhatian bahawa anda memerlukan ini semasa fasa kompilasi terakhir dari
kod bit ke JavaScript, atau kami akan mengalih keluarnya secara lalai dalam -O1 dan ke atas. Dalam
-O0, nombor baris akan ditunjukkan dalam kod yang dijana. Dalam -O1 dan ke atas, yang
pengoptimum mengalih keluar komen tersebut. Bendera ini bagaimanapun mempunyai kesan
melumpuhkan apa-apa yang menyebabkan nama rosak atau minifikasi (penutupan atau
pas mendaftar).

--taip-tatasusunan
0: Tiada tatasusunan ditaip 1: Tatasusunan ditaip selari 2: Tatasusunan ditaip dikongsi (seperti C)
(lalai)

--llvm-opts
0: Tiada pengoptimuman LLVM (lalai dalam -O0) 1: -O1 Pengoptimuman LLVM (lalai dalam
-O1) 2: -O2 Pengoptimuman LLVM 3: -O3 Pengoptimuman LLVM (lalai dalam -O2+)

--llvm-lto
0: Tiada LLVM LTO (lalai dalam -O2 dan ke bawah) 1: LLVM LTO (lalai dalam -O3) Nota: Jika
Pengoptimuman LLVM tidak dijalankan (lihat --llvm-opts), menetapkan ini kepada 1 tidak mempunyai kesan.

--penutupan
0: Tiada pengkompil penutup (lalai dalam -O2 dan ke bawah) 1: Jalankan pengkompil penutup. ini
sangat mengurangkan saiz kod dan mungkin dalam beberapa kes meningkatkan kelajuan masa jalan (walaupun
sebaliknya juga boleh berlaku). Ambil perhatian bahawa ia mengambil masa untuk dijalankan, dan mungkin memerlukan beberapa
perubahan kepada kod. Ini dijalankan secara lalai dalam -O3.

Dalam mod asm.js, penutupan hanya akan digunakan pada kod 'shell' di sekeliling yang disusun
kod (kod yang disusun akan diproses oleh pemendek asm.js tersuai).

Nota: Jika pengkompil penutup mencecah memori yang kehabisan, cuba laraskan JAVA_HEAP_SIZE dalam
persekitaran (contohnya, hingga 4096m untuk 4GB).

--js-transform
akan dipanggil pada kod yang dijana sebelum ia dioptimumkan. Ini membolehkan anda
ubah suai JavaScript, contohnya menambah beberapa kod atau mengalih keluar beberapa kod, dengan cara tertentu
bahawa pengubahsuaian tersebut akan dioptimumkan bersama dengan kod yang dihasilkan
dengan betul. akan dipanggil dengan nama fail kod yang dihasilkan sebagai a
parameter; untuk mengubah suai kod, anda boleh membaca data asal dan kemudian menambahkannya
atau tulis ganti dengan data yang diubah suai. ditafsirkan sebagai ruang yang dipisahkan
senarai hujah, contohnya, daripada "python processor.py" akan menyebabkan python
skrip untuk dijalankan.

--pra-js
Fail yang kandungannya ditambah sebelum kod yang dihasilkan. Ini dilakukan *sebelum*
pengoptimuman, jadi ia akan diminimumkan dengan betul jika pengkompil penutup dijalankan.

--post-js
Fail yang kandungannya ditambah selepas kod yang dihasilkan Ini dilakukan *sebelum*
pengoptimuman, jadi ia akan diminimumkan dengan betul jika pengkompil penutup dijalankan.

--embed-file
Fail untuk dibenamkan dalam JavaScript yang dihasilkan. Kod yang disusun akan dapat
akses fail dalam direktori semasa dengan nama yang sama seperti yang diberikan di sini. Jadi kalau
awak buat --embed-file dir/file.dat, kemudian (1) dir/file.dat mesti wujud relatif kepada
tempat anda menjalankan emcc, dan (2) kod terkumpul anda akan dapat mencari fail dengan
membaca laluan yang sama, dir/file.dat. Jika direktori diluluskan di sini, keseluruhannya
kandungan akan dibenamkan.

--pramuat-fail
Fail untuk pramuat sebelum menjalankan kod yang disusun secara tidak segerak. Jika tidak
sama dengan --embed-file, kecuali pilihan ini hanya berkaitan apabila menjana
HTML (ia menggunakan XHR binari tak segerak), atau JS yang akan digunakan dalam halaman web. Jika
direktori diluluskan di sini, keseluruhan kandungannya akan dipramuat. Fail pramuat
disimpan dalam nama fail.data, dengan nama fail.html ialah fail utama yang anda susun
kepada. Untuk menjalankan kod anda, anda memerlukan kedua-dua .html dan .data.

emcc menjalankan alat/file_packager.py untuk melakukan pembungkusan sebenar tertanam dan
fail pramuat. Anda boleh menjalankan pembungkus fail sendiri jika anda mahu, lihat dokumen
dalam fail itu. Anda kemudiannya harus meletakkan output pembungkus fail dalam emcc
--pra-js, supaya ia dilaksanakan sebelum kod terkumpul utama anda (atau jalankannya sebelum masuk
dengan cara lain).

--mampatan
Mampatkan kedua-dua kod yang disusun dan fail terbenam/pramuat. sepatutnya a
tiga kali ganda,

, ,

di mana native_encoder ialah boleh laku asli yang memampatkan stdin kepada stdout (the
antara muka paling mudah), js_decoder ialah fail JavaScript yang melaksanakan a
penyahkod, dan js_name ialah nama fungsi untuk dipanggil dalam fail penyahkod (yang
harus menerima tatasusunan/tatasusunan ditaip dan mengembalikan tatasusunan/tatasusunan ditaip. Mampatan
hanya berfungsi apabila menjana HTML. Apabila pemampatan dihidupkan, semua fail dinyatakan sebagai
pramuat dimampatkan dalam satu arkib besar, yang diberi nama yang sama dengan
keluaran HTML tetapi dengan akhiran .data.compress

--kecilkan
0: Jangan kecilkan ruang kosong JavaScript yang dijana (lalai dalam -O0, -O1, atau jika
-g digunakan)

1: Kecilkan JavaScript yang dihasilkan

ruang putih (lalai dalam -O2+, andaikan -g tidak digunakan)

--berpecah
Pisahkan fail javascript yang terhasil kepada beberapa bahagian untuk memudahkan penyahpepijatan. Pilihan ini
hanya berfungsi jika Javascript dijana (target -o .js). Fail dengan fungsi
pengisytiharan mesti dimuatkan sebelum fail utama selepas pelaksanaan.

Tanpa pilihan "-g":

Mencipta fail dengan pengisytiharan fungsi sehingga saiz yang diberikan dengan akhiran
"_functions.partxxx.js" dan fail utama dengan akhiran ".js".

Dengan pilihan "-g":

Mencipta semula struktur direktori fail sumber C dan fungsi stor
pengisytiharan dalam fail C masing-masing dengan akhiran ".js". Jika fail sedemikian
melebihi saiz yang diberikan, fail dengan akhiran ".partxxx.js" dicipta. Yang utama
fail berada dalam direktori asas dan mempunyai akhiran ".js".

--mengikat Menyusun kod sumber menggunakan pendekatan pengikatan "embind", yang menghubungkan C/C++
dan JS.

--abaikan-dynamic-linking Biasanya emcc akan melayan pemautan dinamik seperti
pemautan statik, dengan memaut dalam kod dari perpustakaan dinamik. Ini gagal jika
perpustakaan dinamik yang sama dipautkan lebih daripada sekali. Dengan pilihan ini, pemautan dinamik
diabaikan, yang membolehkan sistem binaan diteruskan tanpa ralat. Walau bagaimanapun, anda
anda perlu memaut secara manual ke perpustakaan kongsi kemudian.

--fail-cangkang
Nama laluan ke fail HTML rangka yang digunakan semasa menjana output HTML. cangkerang
fail yang digunakan perlu mempunyai token ini di dalamnya: {{{ SCRIPT_CODE }}} Ambil perhatian bahawa ini
hujah diabaikan jika sasaran selain HTML ditentukan menggunakan -o pilihan.

--js-library
Pustaka JavaScript untuk digunakan sebagai tambahan kepada perpustakaan src/library_* Emscripten

-v Menghidupkan output verbose. Ini akan berlalu -v kepada Clang, dan juga membolehkan EMCC_DEBUG untuk
perincian operasi emcc

--jcache
Gunakan cache JavaScript. Ini dilumpuhkan secara lalai. Apabila didayakan, emcc akan menyimpan
hasil penyusunan dalam cache dan semak cache apabila menyusun kemudian,
sesuatu seperti apa yang ccache lakukan. Ini membolehkan binaan tambahan - di mana anda berada
menyusun atur cara yang besar tetapi hanya mengubah suai sebahagian kecil daripadanya - untuk menjadi lebih pantas
(dengan kos lebih banyak cakera IO untuk capaian cache). Ambil perhatian bahawa anda perlu mendayakan
--jcache untuk memuatkan dan menyimpan data, jadi anda mesti mendayakannya pada binaan penuh
untuk binaan tambahan kemudian (di mana anda juga membolehkannya) dipercepatkan.

Caching berfungsi secara berasingan pada 4 bahagian kompilasi: 'pra' iaitu jenis dan global
pembolehubah; maklumat itu kemudiannya dimasukkan ke dalam 'funcs' yang merupakan fungsi (yang
kita selarikan), dan kemudian 'siaran' yang menambah maklumat akhir berdasarkan
fungsi (cth, adakah kita memerlukan kod sokongan long64). Akhirnya, 'jsfuncs' ialah
Pengoptimuman peringkat JavaScript. Setiap satu daripada 4 bahagian boleh dicache secara berasingan, tetapi
ambil perhatian bahawa mereka boleh mempengaruhi satu sama lain: Jika anda menyusun semula satu fail C++ yang
menukar pembolehubah global - cth, menambah, mengalih keluar atau mengubah suai pembolehubah global, katakan
dengan menambah printf atau dengan menambah cap masa kompilasi, maka 'pra' tidak boleh
dimuatkan daripada cache. Dan kerana 'output pra dihantar ke 'funcs' dan 'post', mereka
akan menjadi tidak sah juga, dan hanya 'jsfuncs' akan dicache. Jadi elakkan mengubah suai
globals untuk membiarkan caching berfungsi sepenuhnya.

Untuk mengatasi masalah yang dinyatakan dalam perenggan sebelumnya, anda boleh menggunakan

emscripten_jcache_printf

apabila menambah printfs nyahpepijat pada kod anda. Fungsi itu dipraproses khas jadi
bahawa ia tidak mencipta rentetan berterusan global untuk hujah pertamanya. Lihat
emscripten.h untuk butiran lanjut. Ambil perhatian khususnya bahawa anda perlu sudah mempunyai a
panggil ke fungsi itu dalam kod anda *sebelum* anda menambah satu dan melakukan penambahan
bina, supaya menambah rujukan luaran (juga harta global) tidak
membatalkan segala-galanya.

Perhatikan bahawa anda harus menggunakan -g semasa peringkat pemautan (bitcode ke JS), untuk jcache ke
kerja (jika tidak, minification JS boleh mengelirukannya).

--kosongkan cache
Membersihkan cache pustaka sistem emskripten yang disusun secara manual (libc++,
libc++abi, libc). Ini biasanya dikendalikan secara automatik, tetapi jika anda mengemas kini llvm
di tempat (bukannya mempunyai direktori yang berbeza untuk versi baharu), caching
mekanisme boleh menjadi keliru. Membersihkan cache boleh menyelesaikan masalah pelik yang berkaitan dengan
ketidakserasian cache, seperti denting gagal dipautkan dengan fail perpustakaan. Ini juga
mengosongkan data cache lain seperti jcache dan relooper bootstrapped. Selepas
cache dikosongkan, proses ini akan keluar.

--simpan-bc PATH
Apabila menyusun ke JavaScript atau HTML, pilihan ini akan menyimpan salinan kod bit
ke laluan yang ditentukan. Kod bit akan merangkumi semua fail yang dipautkan, termasuk
perpustakaan standard, dan selepas sebarang pengoptimuman masa pautan (jika ada).

--memory-init-file
Jika hidup, kami menjana fail permulaan memori yang berasingan. Ini lebih cekap
daripada menyimpan data permulaan memori yang dibenamkan di dalam JavaScript sebagai teks.
(lalai dimatikan)

Fail sasaran, jika dinyatakan (-o ), mentakrifkan apa yang akan dihasilkan:

.js
JavaScript

.html
HTML dengan JavaScript terbenam

.bc
Kod bit LLVM (lalai)

.o
Kod bit LLVM (sama seperti .bc)

(Perhatikan bahawa jika --memory-init-file digunakan, kemudian sebagai tambahan kepada fail .js atau .html iaitu
dijana, fail .mem juga akan muncul.)

. -c pilihan (yang memberitahu gcc untuk tidak menjalankan pemaut) akan menyebabkan kod bit LLVM menjadi
dijana, kerana emcc hanya menjana JavaScript dalam peringkat pemautan akhir pembinaan.

Fail input boleh sama ada fail kod sumber yang boleh dikendalikan oleh Clang (C atau C++), LLVM
bitcode dalam bentuk binari, atau fail pemasangan LLVM dalam bentuk yang boleh dibaca manusia.

emcc dipengaruhi oleh beberapa pembolehubah persekitaran. Untuk butiran, lihat sumber emcc
(cari 'os.environ').

emcc: sasaran yang disokong: llvm bitcode, javascript, NOT elf (autoconf suka melihat elf
di atas untuk membolehkan sokongan objek dikongsi)

HAKCIPTA


Hak Cipta © 2013 pengarang Emscripten (lihat AUTHORS.txt) Ini adalah sumber terbuka dan percuma
perisian di bawah lesen MIT. TIADA waranti; bukan juga untuk KEBOLEHPERDAGANGAN atau
KESESUAIAN UNTUK TUJUAN TERTENTU.

Gunakan emcc dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad