Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu đang bị lỗi
File tài liệu này hiện đang bị hỏng, chúng tôi đang cố gắng khắc phục.
Thực hành UNIX/Linux - phần 2 pot
Nội dung xem thử
Mô tả chi tiết
Thực hành UNIX/Linux UNIX/Linux
- phần 2 -
2.2
Khoa Công nghệ Thông tin Thông tin - Đại học Bách Khoa Tp. HCM
Nội dung
Biên dịch và thực thi chương trình C/C++
Giới thiệu về process
z Tổ chức của một process
z Background và foreground process
z Các lệnh thao tác với process
Lập trình process với fork(), exec…()
2.3
Khoa Công nghệ Thông tin Thông tin - Đại học Bách Khoa Tp. HCM
Quá trình tạo process process
.c, .cpp, .cc
gas/gcc/g++
.o
gcc/g++
2.4
Khoa Công nghệ Thông tin Thông tin - Đại học Bách Khoa Tp. HCM
Bộ công cụ phát triển ứng dụng GNU
GNU Compiler Collection (GCC)
z Thư viện các hàm tiện ích: libc, libstdc++, …
z Các trình biên dịch gcc, g++, gcj, gas, …
z Trình khử lỗi gdb
z Trình tiện ích khác trong binutils như nm, strip, ar, objdump,
ranlib (dùng lệnh info binutils để xem thêm)
z Tiện ích: gmake
z …
2.5
Khoa Công nghệ Thông tin Thông tin - Đại học Bách Khoa Tp. HCM
Trình biên dịch GNU C/C++ GNU C/C++
Công cụ dùng biên dịch các chương trình C/C++
Quá trình biên dịch thành file thực thi gồm 4 giai đoạn theo thứ
tự như sau:
1. preprocessing (tiền xử lý)
2. compilation (biên dịch)
3. assembly (hợp dịch)
4. linking (liên kết)
Ba bước 1, 2, 3 chủ yếu làm việc với một file đầu vào
Bước 4 có thể liên kết nhiều object module liên quan để tạo
thành file thực thi nhị phân (executable binary)
Lập trình viên có thể can thiệp vào từng bước ở trên $☺01
2.6
Khoa Công nghệ Thông tin Thông tin - Đại học Bách Khoa Tp. HCM
GNU C/C++ compiler ( GNU C/C++ compiler (gcc/g++)
.c,.cc source codes .c,.cc
.cpp
gcc -E hello.c -o hello.cpp
e.g. hello.c
hello.cpp
hello.o
preprocessed
source files
object
code
gcc -x assembler -c hello.s [-o hello.o]
b.o
a.o
.s
gcc -x cpp-output -S hello.cpp [-o hello.s]
assembly
source code
a.out/hello
gcc -S hello.c [-o hello.s]
gcc a.o b.o hello.o [-o hello]
gcc -c hello.c [-o hello.o]
gcc hello.c [-o hello]
executable
binary
2.7
Khoa Công nghệ Thông tin Thông tin - Đại học Bách Khoa Tp. HCM
Tóm tắt một số tùy chọn của gcc
Tùy chọn Công dụng
-o FILE Chỉ định tên của file output (khi biên dịch thành file thực thi, nếu không có -o filename thì tên file mặc định sẽ là a.out)
-c Chỉ biên dịch mà không linking (i.e. chỉ tạo ra object file *.o)
-IDIRNAME Chỉ tên thư mục DIRNAME là nơi chứa các file header (.h) mà gcc sẽ tìm trong đó (mặc định gcc sẽ tự tìm ở các thư mục chuẩn /usr/include, …)
-LDIRNAME Chỉ tên thư mục DIRNAME là nơi chứa các thư viện (.a, .so) mà gcc sẽ tìm trong đó (mặc định gcc sẽ tự tìm ở các thư mục chuẩn /usr/lib, …)
-O [n] Tối ưu mã thực thi tạo ra (e.g. -O2, -O3, hoặc -O)
-g Chèn thêm mã phục vụ công việc debug
-E Chỉ thực hiện bước tiền xử lý (preprocessing) mà không biên dịch
-S Chỉ dịch sang mã hợp ngữ chứ không linking (i.e. chỉ tạo ra file *.s)
-lfoo Link với file thư viện có tên là libfoo (e.g. -lm, -lpthread)
-ansi Biên dịch theo chuẩn ANSI C/C++ (sẽ cảnh báo nếu code không chuẩn)