GNU/Linux >> Belajar Linux >  >> Linux

Blok dentang di Linux?

Di Linux Ubuntu:

sudo apt-get install llvm
sudo apt-get install clang
sudo apt-get install libblocksruntime-dev

test.c :

#include <stdio.h>

int main() {
    void (^hello)(void) = ^(void) {
        printf("Hello, block!\n");
    };
    hello();
    return 0;
}

kompilasi:

clang test.c -fblocks -lBlocksRuntime -o test
./test

Hello, block!

berfungsi dengan baik.


Informasi latar belakang teknis:

Blok itu sendiri adalah fitur bahasa tetapi mereka juga memerlukan beberapa dukungan runtime. Jadi, compiler harus menyediakan pustaka runtime dan menautkannya secara statis ke produk build atau sistem harus menyediakan pustaka runtime yang dapat ditautkan ke produk build.

Dalam kasus macOS, runtime blok adalah bagian dari libSystem dan karena semua pustaka yang dapat dijalankan dan dinamis di macOS ditautkan dengan libSystem, semuanya memiliki dukungan blok.

Pada sistem Linux, dukungan runtime seperti itu biasanya akan ditambahkan ke perpustakaan libC (glibc dalam banyak kasus) jika dianggap sebagai fitur inti dari sistem atau bahasa, namun karena gcc saat ini tidak memiliki dukungan untuk blok sama sekali dan tidak diketahui apakah blok akan pernah menjadi fitur C resmi, sistem Linux tidak mengirimkan dukungan runtime untuk blok secara default.

dentang itu sendiri memang menawarkan runtime blok target-independen sebagai bagian dari perpustakaan runtime kompiler, namun itu opsional dan banyak sistem Linux tampaknya tidak termasuk dalam paket instalasi dentang mereka. Itu sebabnya proyek blockruntime telah dibuat, yang membangun dukungan runtime blok dentang sebagai perpustakaan sendiri, yang dapat Anda tautkan secara statis ke proyek Anda atau instal secara dinamis ke sistem Anda. Kode sumber tersedia di GitHub.

Bergantung pada distribusi Linux Anda, paket penginstal siap pakai mungkin ada. Perhatikan bahwa blockruntime tidak bisa hanya dikompilasi untuk Linux, itu juga dapat dikompilasi untuk FreeBSD atau Windows (MinGW/Mingw-w64) atau bahkan untuk Mac jika Anda tidak ingin menggunakan runtime yang disediakan Apple. Secara teoritis itu harus portabel untuk platform apa pun yang mendukung dentang secara asli.


Menilai dari Pustaka mana yang perlu Anda tautkan untuk program dentang menggunakan blok, tampaknya tidak ada cara mudah untuk memperbaikinya, setidaknya pada awal 2010.


Linux
  1. Linux – Blokir Akses Jaringan Suatu Proses?

  2. Mengonfigurasi Penyimpanan Blok di Server Linux

  3. Blokir alamat IP di server Linux

  1. Cara memblokir alamat IP di server Linux

  2. Cara memblokir alamat IP di server Linux

  3. Cara Memblokir atau Menonaktifkan Login Pengguna Normal di Linux

  1. Linux – Tentukan Ukuran Perangkat Blok?

  2. berjuang dengan c ++ IDE di linux

  3. Dentang vs GCC untuk proyek Pengembangan Linux saya