Bài thuyết trình power point này giúp bạn hiểu thêm được phần nào về sự khác nhau giữa C++ trong HĐH Windows và G++ trong HĐH Linux (Thực ra C++ trong Windows và G++ trong Linux giống nhau đến hơn 90%,chỉ có một số điểm khác nhau cơ bản trong phần biên dịch mà thôi,hi vọng bài này sẽ giúp các bạn hiểu rô hơn về điều này.)
ĐỒ ÁN NGƠN NGỮ LẬP TRÌNH Group: Hell’s Boy TH Class: 07 3D Project: Linux C++ programming Nguyễn Hoàng Thiện – 070315T Trịnh Văn Tú – 070335T Võ Minh Thu – 070322T Lê Văn Tuấn – 070370T Tổng quan: –Giới thiệu sơ lược –Thư viện lệnh –Cách viết code,hàm –Tiến trình biên dịch –Hướng dẫn debug gỡ lỗi –Trình biên dịch –Ví dụ đối chiếu I - Giới thiệu sơ lược: • Linux hệ điều hành nguồn mở Tức Linux giống Windows chỗ quản lý thứ bạn sử dụng máy tính Nó quản lý ứng dụng chạy, quản lý thông tin người dùng, quản lý liệu đĩa cứng… Trình biên dịch C Linux phần GCC (GNU Compiler Collection).GCC dùng với: C, C++,Objective C,Fortran, … Biên dịch C "gcc" Xem hình Biên dịch C++ "g++" • • • • • • Bộ công cụ phát triển ứng dụng GNU * GNU Compiler Collection (GCC) + Thư viện hàm tiện ích: libc, libstdc++, … + Các trình biên dịch gcc, g++, gcj, gas, … + Trình khử lỗi gdb +Trình tiện ích khác binutils nm, strip, ar, objdump, • ranlib (dùng lệnh info binutils để xem thêm) • + Tiệních: gmake • +… • Windows +Phần mền lập Trình Visual C++ nằm gói Visual studio +VC chương trình lập trình mạnh mẽ giúp lập trình viên viết code sửa lỗi thực thi chường trình Visual C++ VD0a: Xem Hinh • Linux +Phần mền lập trình G++ (GNU Compiler Collection) +Để lập trình cần dùng tới nhiều chương trình khác như: -gedit:dùng để viết code -terminal:để thực thi chương trình Bên cạnh bạn phải cài gói g++ để chương trình hiểu Vd 0b: Xem hinh Thư viện: hai có thư viện lệnh chuẩn như: string.h,stdio.h…… Cách khai báo thư viện: • Windows #include Vd: Xem hình #include Using namespace std; • Linux #include Using namespace std; Vd: Xem hình Trong Linux khơng sử dụng thư viện lệnh thay vào lại lệnh Cách tạo thư viện tĩnh • Giả sử bạn có hai file mã nguồn chứa hàm a.c b.c • a.c b.c • int func1(){ double func2(){ • return 7; return 3.14159; • } } • • • • • • • • • Tạo thư viện tĩnh tên libab.a Biên dịch tạo file object $ gcc -c a.c b.c Dùng lệnh ar để tạo thành thư viện tĩnh tên libab.a $ ar cr libab.a a.o b.o Có thể dùng lệnh nm để xem lại kết $ nm libab.a Có thể dùng lệnh file để xem file libab.a loại file $ file libab.a Thư viện liên kết động • Tạo thư viện liên kết động libab.so từ a.c b.c • Biên dịch tạo file object có dùng tùy chọn -fPIC • $ g++ -c -fPIC a.c b.c • Tạo thư viện liên kết động tên libab.so • $ g++ -shared -fPIC -o libab.so a.o b.o • Có thể dùng lệnh file để xem file libab.so loại file • $ file libab.so Cách viết thân hàm • Windows Void main () Int main () Int main (void) Main (void) Vd1a: Xem hình • Linux Int main () Int main (void) Void main () Vd1b: Xem hình • Linux: • Tùy chọn "-c": - Giúp trình biên dịch file thủ tục tạo object file (tất nhiên chương trình chạy, mặc định!) File object có phần mở rộng ".o" ".obj" + Ví dụ: ~$ gcc -c -o hello hello.c • Tùy chọn "-o ": tên mà ta chọn cho file chạy thay cho tên mặc định (tên file mặc định "a.out") • Tùy chọn "-O ": - Chỉ dẫn tạo chương trình với tạm hiểu thứ tự ưu tiên (hay tối ưu) n = 1, 2, Thông thường dùng n = • Tùy chọn "-g": - Tạo chương trình có thơng báo lỗi (nếu có) • Tùy chọn "-I ": - Thêm thư mục đặc biệt (bao gồm đường dẫn) để tìm kiếm Trình biên dịch tìm thư mục file khai báo đầu file nguồn (chứa code) Mặc định trình biên dịch search /usr/include • Tùy chọn "-L ": - Tìm thư viện (Tương tự -I), mặc định /usr/lib • Cơng cụ dùng biên dịch chương trình C/C++ • Q trình biên dịch thành file thực thi gồm giai đoạn theo thứ tự sau: Preprocessing (tiền xử lý) Compilation (biên dịch) Assembly (hợpdịch) Linking (liên kết) • Ba bước 1, 2, chủ yếulàm việc với file đầuvào • Bước4 liên kết nhiều object module liên quan để tạo thành file thực thi nhị phân • Lập trình viên can thiệpvào bước Hướng dẫn debug gỡ lỗi • Tất phần mềm chứa đựng lỗi Thông thường 100 dịng lệnh có khoảng 2-5 dịng lệnh bị lỗi ( 2-5%) Các lỗi thường gặp phân loại sử dụng số phương pháp chung để loại bỏ chúng sau: – Lỗi đặc tả – Lỗi thiết kế – Lỗi viết mã Trình biên dịch • • • • KDevelop Anjuta GNOME Eclipse IDE hỗ trợ lập trình C giao diện graphic Linux, giống VC++ Windows THE END ... +… • Windows +Phần mền lập Trình Visual C++ nằm gói Visual studio +VC chương trình lập trình mạnh mẽ giúp lập trình viên viết code sửa lỗi thực thi chường trình Visual C++ VD0a: Xem Hinh • Linux. .. mền lập trình G++ (GNU Compiler Collection) +Để lập trình cần dùng tới nhiều chương trình khác như: -gedit:dùng để viết code -terminal:để thực thi chương trình Bên cạnh bạn phải cài gói g++ để... Collection (GCC) + Thư viện hàm tiện ích: libc, libstdc++, … + Các trình biên dịch gcc, g++, gcj, gas, … + Trình khử lỗi gdb +Trình tiện ích khác binutils nm, strip, ar, objdump, • ranlib (dùng