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.