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
985

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)

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