Tải bản đầy đủ (.ppt) (18 trang)

Bài thuyết trình sự khác nhau giữa c++ trong windows và g++ trong linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (174.01 KB, 18 trang )

ĐỒ Á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 và gỡ lỗi
–Trình biên dịch.
–Ví dụ đối chiếu.


I - Giới thiệu sơ lược:

• Linux là hệ điều hành nguồn mở. Tức là Linux
giống như Windows ở chỗ nó là cái nền quản lý
mọi thứ khi bạn sử dụng máy tính. Nó quản lý


các ứng dụng đang chạy, quản lý những thông
tin về người dùng, quản lý dữ liệu trên đĩa
cứng…
Trình biên dịch C trên Linux chỉ là một phần
GCC (GNU Compiler Collection).GCC có thể
dùng được với: C, C++,Objective C,Fortran, …
Biên dịch C là "gcc"
Xem hình
Biên dịch C++ là "g++"









Bộ công cụ phát triển ứng dụng GNU
* GNU Compiler Collection (GCC)
+ Thư viện các 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 trong binutils như 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 là
Visual C++ nằm trong
gói Visual studio.
+VC là một chương
trình lập trình mạnh
mẽ giúp lập trình viên
có thể viết code và
sửa lỗi và thực thi
chường trình ngay
trong Visual C++.
VD0a: Xem Hinh

• Linux
+Phần mền lập trình là
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 có thể hiểu được.
Vd 0b: Xem hinh


Thư viện: cả hai đều có thư viện lệnh

chuẩn như: string.h,stdio.h……..
Cách khai báo thư viện:

• Windows
#include<iostream.h>
Vd: Xem hình
#include<iostream>
Using namespace std;

• Linux
#include<iostream>
Using namespace std;
Vd: Xem hình

Trong Linux khơng sử dụng thư viện
lệnh <conio.h> nhưng thay vào đó lại là
lệnh<curses.h>


Cách tạo thư viện tĩnh
• Giả sử bạn có hai file mã nguồn chứa hàm
là a.c và b.c

a.c
b.c

int func1(){
double func2(){

return 7;

return 3.14159;

}
}












Tạo thư viện tĩnh tên là libab.a
1. Biên dịch tạo các file object
$ gcc -c a.c b.c
2. Dùng lệnh ar để tạo thành thư viện tĩnh
tên là libab.a
$ ar cr libab.a a.o b.o
3. Có thể dùng lệnh nm để xem lại kết
quả
$ nm libab.a
4. Có thể dùng lệnh file để xem file
libab.a là loại file gì
$ 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 và b.c
• 1. Biên dịch tạo các file object có dùng tùy chọn
-fPIC
• $ g++ -c -fPIC a.c b.c
• 2. Tạo thư viện liên kết động tên là libab.so
• $ g++ -shared -fPIC -o libab.so a.o b.o
• 3. Có thể dùng lệnh file để xem file libab.so là
loại file gì
• $ 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 và thủ tục tạo một object
file (tất nhiên là cả chương trình chạy, cái này là
mặc định!). File object có phần mở rộng là ".o"
hoặc ".obj".
+ Ví dụ: ~$ gcc -c -o hello hello.c
• Tùy chọn "-o <name>":
<name> là tên mà ta chọn cho file chạy thay cho
tên mặc định (tên file mặc định là "a.out").


• Tùy chọn "-O <n>":
- Chỉ dẫn này tạo chương trình với <n> tạm hiểu
là thứ tự ưu tiên (hay tối ưu). n = 1, 2, 3. Thông
thường dùng là n = 2.
• Tùy chọn "-g":
- Tạo chương trình và có hiện thơng báo lỗi (nếu
có).


• Tùy chọn "-I <directory name>":
- Thêm thư mục đặc biệt (bao gồm cả đường
dẫn) để tìm kiếm. Trình biên dịch sẽ tìm trong
thư mục đó các file được khai báo đầu file
nguồn (chứa code).
Mặc định trình biên dịch sẽ search trong
/usr/include
• Tùy chọn "-L <directory name>":
- Tìm thư viện (Tương tự -I), mặc định là /usr/lib



• 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ợpdịch)
4. Linking (liên kết)
• Ba bước 1, 2, 3 chủ yếulàm việc với một file
đầuvào
• Bước4 có thể 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 có thể can thiệpvào từng bước ở
trên


Hướng dẫn debug và gỡ lỗi
• Tất cả các phần mềm đều chứa đựng lỗi.
Thơng thường thì 100 dịng lệnh là có
khoảng 2-5 dịng lệnh bị lỗi ( 2-5%). Các lỗi
thường gặp được phân loại và sử dụng
một số phương pháp chung để loại bỏ
chúng như 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 là một IDE hỗ trợ lập trình
C giao diện graphic trên Linux,
giống như VC++ trên Windows.


THE END



×