Siêu thị PDFTải ngay đi em, trời tối mất

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

Thực hành UNIX/Linux - phần 2 pot
PREMIUM
Số trang
74
Kích thước
3.7 MB
Định dạng
PDF
Lượt xem
733

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)

Tải ngay đi em, còn do dự, trời tối mất!