Benamkan Sumber Data dalam Boleh Laku dengan GCC
Membenamkan data binari dalam boleh laku boleh memberi manfaat yang besar untuk mengedarkan aplikasi mudah alih. Sebagai contoh, membenamkan kod shader sebagai data binari dan bukannya menyimpannya sebagai kod sumber boleh meningkatkan kepraktisan.
Untuk mencapainya, GCC menawarkan dua pilihan utama:
Menggunakan ld untuk Benamkan Fail Binari
Penyambung, ld, membenarkan penukaran mana-mana fail kepada objek fail:
ld -r -b binary -o binary.o foo.bar # Subsequently link in binary.o
Pendekatan ini mencipta simbol seperti _binary_foo_bar_start, _binary_foo_bar_end dan _binary_foo_bar_size dalam fail objek.
Memanfaatkan bin2c/bin2h Utiliti
Sebagai alternatif, anda boleh menggunakan utiliti bin2c/bin2h untuk menukar mana-mana fail kepada tatasusunan bait.
Contoh Pembenaman Data Menggunakan ld
Di bawah ialah contoh ilustrasi cara membenamkan data menggunakan ld:
#include <stdio.h> extern char _binary_foo_bar_start[]; // Address of the embedded resource extern char _binary_foo_bar_end[]; int main(void) { int iSize = (unsigned int)(&_binary_foo_bar_end - &_binary_foo_bar_start); printf("Size of embedded resource: %d\n", iSize); for (char* p = _binary_foo_bar_start; p != _binary_foo_bar_end; ++p) putchar(*p); return 0; }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membenamkan Sumber Data Perduaan ke dalam Boleh Laku Menggunakan GCC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!