Compiler là gì

  -  

Trình biên dịch, còn được gọi làphần mềm biên dịch,compiler, là mộtlịch trình sản phẩm tínhlàm quá trình dịch một chuỗi những câu lệnh được viết bằng mộtngôn từ lập trình(gọi làngôn từ nguồnhaymã nguồn), thành một chương trình tương đương tuy thế làm việc dưới dạng mộtngữ điệu đồ vật tínhbắt đầu (Gọi làngôn từ đích) cùng thường là ngôn từ sinh sống thấp cấp hơn, nhỏng ngôn từ thứ. Chương trình mới được dịch này gọimã đối tượng người dùng. 2. Quá trình biên dịch




Bạn đang xem: Compiler là gì

*

#include #include #define PI 3.14 int main(int argc, char **argv) float x, y; x = PI / 3; y = cos(x); printf(“gia tri cos(%f) = %f“, x, y); return 1; Trong chương trình có thực hiện thỏng viện tân oán học math cho hàm cos(x), vậy trong quy trình Linker sẽ thực hiện lấy mã của hàm printf() trong tlỗi viện để kết hợp với mã thông thường khác.quý khách sẽ xem: Compiler là gì

Đang xem: Compiler là gì


*

3. Cross Compiler /Toolchain là gìCross Compiler hay có cách gọi khác là Toolchain được định nghĩa:Across compileris acompilercapable of creatingexecutablecode for aplatformother than the one on which the compiler is running. For example, a compiler that runs on aWindows 7PCbut generates code that runs onAndroidsmartphoneis a cross compiler


*



Xem thêm: Hướng Dẫn Cách Chơi Pubg Mobile Cho Người Mới Bắt Đầu, Cách Chơi Pubg Mobile Cho Người Mới Hay Nhất

Có nghĩa là source code được viết bên trên máy tính xách tay chạy chíp Hãng Intel (x86 platform), thông sang 1 cross compiler đang đã tạo ra file nhị phân (mã máy) có chức năng chạy được bên trên một buộc phải tảng chip khác là ARM (ARM platform). Trên hình native sầu compiler là trình biên dịch để tạo ra tệp tin nhị phân chạy trên thiết yếu laptop sẽ dùng làm viết source code.


*

+ Host: là hệ thống chạy lịch trình tool chain để compile source của một lịch trình ứng dụng như thế nào đó, host cũng giống như Build, thường là các máy vi tính Hãng Intel chạy Linux hoặc Windows OS+ Target: là hệ thống chạy các công tác (dưới dạng file nhị phân – mã máy) bởi khối hệ thống Host tạo ra, target hay là các khối hệ thống nhúng chạy chip ARM, MIPS, PowerPC, …; tuy nhiên target cũng có thể là một laptop thông thường chạy chip Intel.VD:BUILD=x86HOST=x86TARGTE=arm-linux5. Các yếu tố của compiler


*



Xem thêm: 8 Game Giáng Sinh (Noel) Hay Nhất Bạn Nên Thử, Đáp Án Game Brain Out Đầy Đủ Nhất

+ BinutilsLà một tập những cách thức để chế tạo cùng thống trị tệp tin nhị phân (bin) của target CPUas: là assembler, nó sinh ra mã nhị phân (binary code) trường đoản cú assembler source codeld: trình links (linker)ar, ranlib : hình thành tệp tin nén .a, áp dụng như thể thư việnobjdump, readelf, kích cỡ, nm, strings: so sánh tệp tin nhị phânstrip : để đào thải hầu hết phần vượt trong tệp tin nhị phân để giảm kích cỡ của chúngthường thì nhằm cross-compiler một công tác ta phải cài đặt thay đổi môi trường bắt đầu hoàn toàn có thể compile đúng được export PATH=/path/to/compiler/bin:$PATH #đường dẫn đến thư mục đựng as, ld, … export CROSS_COMPILE=arm-none-linux-gnueabi- export CC=$CROSS_COMPILEgcc export CXX=$CROSS_COMPILEg++ export CPP=$CROSS_COMPILEcpp export AR=$CROSS_COMPILEar export AS=$CROSS_COMPILEas export LD=$CROSS_COMPILEld export RANLIB=$CROSS_COMPILEranlib export STRIP=$CROSS_COMPILEstrip Library được sử dụng làm interface thân applications với kernel, cung cấp các C API chuẩn chỉnh để dễ ợt cách tân và phát triển áp dụng. Một số libb hoàn toàn có thể nói tới như:glibc, uClibc, eglibc, dietlibc, newlib, …

Kernel header cần thiết mang lại Applications với C Library nhằm hỗ trợ những API tiếp xúc cùng với Kernel.+ GCC compilergcc, c++, g++: compilerTrình biên dịch vào khối hệ thống Linux, compile mang đến không hề ít ngôn ngữ cùng nhiều phong cách thiết kế CPU khác biệt như ARM, MIPS, PowerPC, SuperH, x86; mặc dù vào blog này chỉ đề cùa đến ngữ điệu C/C++ với kiến trúc CPU là ARM cùng x86.+ GDB DebuggerTrình gỡ rối, trợ giúp cho quá trình phát hiện tại lỗi Khi develop application.6. Cài đặt GCCTrong blog này đề cập đếnGCC Compiler(gcc trên host-x86 với cross gcc cho target-ARM), những compiler được các nhà sản xuất chip tạo ra sự và phân phối mang lại các quý khách trải qua trang web của hãng.Một số dòng chip phổ cập dựa vào phong cách xây dựng ARM xuất xắc MIPS thường tiện lợi đã có được cross-compiler bên trên một số trong những đơn vị hỗ trợ miễn mức giá nhưSourceryhayLinaro.GCC chia compiler ra làm 2 phần, gcc là compiler mang lại C source và g++ mang lại C++ source, tuy vậy cũng có thể g++ nhằm compile C source thông thường.Trên Fedora bạn cũng có thể cài đặt compiler thông qua lệnh sau:yum install gcc g++Tđê mê khảo thêm mục Linux Development tại trên đây. 7. Cú pháp của GCC CompilerXét ví dụ:main.c / main.cpp #include #include int main(int argc, char **argv) double x; x = sqrt(4); printf(“x = %f“, x); return 1; Terminal command: $export CFLAGS=”-I./include -DDEBUG -Wall -g” $export LDFLAGS+=” -L./lib -lm” $gcc -c main.c $CFLAGS #tạo ra tệp tin object tự source $gcc -o prog main.o $LDFLAGS #sản xuất tệp tin chương trình nhị phân trường đoản cú tệp tin object hoặc $export CXXFLAGS=”-I./include -DDEBUG -Wall -g” $export LDFLAGS+=” -L./lib -lm” $g++ -c main.cpp $CXXFLAGS #chế tạo ra file object tự source $g++ -o prog main.o $LDFLAGS #sản xuất file lịch trình nhị phân trường đoản cú tệp tin object Phía bên trên là format bình thường / cơ phiên bản độc nhất của GCC compiler+ CFLAGS / CXXFLAGSC Compiler Flags với C++ preprocessor flags nhằm pass các options vào vào compiler để tiến hành quy trình compile sourcecode -> object, gồm những thông tin: – Đường dẫn các file header, bước đầu với “-I”, ví dụ: -I./include – Các define được ban đầu với “-D”; ví dụ: -DDEBUG, define DEBUG – Các options quánh biết khác của compiler; ví dụ: -g (enable công dụng debug gdb của gcc compiler, -Wall (trace các warning trong quá trình compile)+ LDFLAGSLinker flags, cần sử dụng vào quá trình linking các thỏng viện, LDFLAGS chứa các thông tin: – Đường dẫn mang lại tlỗi viện, được bước đầu bằng “-L”; ví dụ: -L./lib – Các thư viện, bắt đầu cùng với “-l”, là viết tắt của lib; ví dụ: -lm tương ứng với libm, thư viện toán thù học tập, gồm sẵn trong hệ thống+ gccCompiler cho C source+ g++Compiler đến C++ source


Leave sầu a Reply Cancel reply

Your tin nhắn address will not be published. Required fields are marked *