Thứ Hai, 10 tháng 3, 2014

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


Group: Hell’s Boy
Class: 07
TH
3D
ĐỒ ÁN NGÔN
NGỮ LẬP TRÌNH

Linux C++ programming
Project:
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"
Biên dịch C++ là "g++"
Xem hình


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

+ …


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.

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
Vd 0b: Xem hinh


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

Linux
#include<iostream>
Using namespace std;
Vd: Xem hình
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:
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


Linux
Int main ()
Int main (void)
Void main ()

Windows
Void main ()
Int main ()
Int main (void)
Main (void)
Cách viết thân hàm
Vd1a: Xem hình
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

Không có nhận xét nào:

Đăng nhận xét