Go Back   Cựu Học Sinh Lê Quý Đôn - Long An > :: Góc Học Tập :: > Tin học > Hệ điều hành > Linux

Linux Họ hệ điều hành Linux

Bắt đầu về lập trình C/C++ trên Linux

Bắt đầu về lập trình C/C++ trên Linux

this thread has 0 replies and has been viewed 17163 times

Gởi Ðề Tài Mới Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 26-10-2009, 11:05 AM   #1
Hồ sơ
Le.Giang
Senior Member
 
Tham gia ngày: Oct 2008
Số bài viết: 657
Tiền: 25
Thanks: 120
Thanked 238 Times in 150 Posts
Le.Giang is an unknown quantity at this point
Default Bắt đầu về lập trình C/C++ trên Linux

bài này được copy từ trang web:
Code:
http://forum.ubuntu-vn.org/viewtopic.php?f=23&t=769
Bài 1: Giới thiệu

Hầu hết mọi người lập trình C đều bắt đầu bằng TC, VC, đều là các ứng dụng trên DOS hoặc trên Win. Thói quen đó thường do những người đi trước, các thầy cô giáo gợi ý. Chính bởi thế mà TC trở thành quen thuộc với những người mới tiếp cận, kéo theo nó là những cách hiểu ko chính xác, những cách nhìn ko hệ thống. Chỉ lấy một ví dụ đơn giản, nhiều sinh viên nghĩ rằng TC, VC chính là C/C++ mà ko hiểu bản chất của nó chỉ là 1 trình biên dịch của C/C++ có kèm theo trình soạn thảo.

Đã quá quen với TC sẽ làm chúng ta bị "kìm hãm" trong những hạn chế của TC: Thứ nhất, TC chạy trên nền DOS --> hạn chế đồ họa. Thứ 2, thư viện của TC có nhiều hạn chế. Thứ 3, TC là một IDE (nó là cái gì thì làm ơn tự tìm hiểu nhé!) --> chúng ta bỏ qua mất một số thứ như: makefiles, hệ thống điều khiểu version, luyện tập sử dụng các thư viện khác.

Bài viết này của tôi chỉ mong muốn giới thiệu một số nét khởi động để bắt đầu đi vào lập trình C/C++. Bài viết có tham khảo các ví dụ của ngài Shridhar Daithankar.

Bài 2: Bắt đầu

I./ Những thao tác trước khi bắt đầu:
-- Cài Linux và các gói development
-- Dưới đây là một số ví dụ để kiểm tra sự tồn tại của các công cụ phát triển (chạy trên Slackware 10 và Open Suse 10
Code:
~$ which gcc
/usr/bin/gcc
Code:
~$ which g++
/usr/bin/g++
Code:
~$ which make
/usr/bin/make
Code:
~$ which vi
/usr/bin/vi
Code:
~$ which pico
/usr/bin/pico
Nếu có các thứ trên đầy đủ thì bắt đầu, còn nếu thiếu 2 cái cuối thì cũng .. bắt đầu vì nó chỉ là trình soạn thảo, dùng cái khác cũng được.

II. Chương trình đầu tiên:
-- Dùng bất kì trình soạn thảo nào và đánh đoạn code sau vào. Save với tên là hello.c (ở đây dùng pico)
Code:
~$ pico
Code:
#include <stdio.h>
int main(void)
{
printf("Hello World \n");
return(0);
}
-- Ấn Ctrl + X để quit. Pico hỏi có save ko --> ấn "Y". Nó yêu cầu đánh tên --> hello.c
-- Dịch:
Code:
~$ gcc -o hello hello.c
-- Nếu ko có lỗi gì thì sẽ ra file hello. Chạy thử bằng lệnh:
Code:
~$ ./hello
-- Chú ý:
+ Dấu "." chính là thư mục hiện tại.
+ Linux dùng "/" thay vì "\" của DOS

III. Tổng kết:
-- Trên Linux, trình biên dịch và soạn thảo khác nhau.
-- Trình biên dịch dùng dòng lệnh.
-- Trình biên dịch trên Linux là "gcc"

Bài 3: Trình biên dịch C/C++

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, (ko biết có còn gì nữa ko!)

Biên dịch C là "gcc"
Biên dịch C++ là "g++"

Lệnh cho version:
Code:
~$ gcc --version
I. Các tùy chọn trong dòng lệnh:

Các tùy chọn điều khiển sụ biên dịch. Có rất nhiều lựa chọn có thể sử dụng, bởi thế tôi chỉ nêu lên một số tùy chọn phổ biến.

1. Tùy chọn "-c":
Giúp trình biên dịch file va 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ụ:
Code:
~$ gcc -c -o hello hello.c
2. 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")

3. 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.

4. Tùy chọn "-g":
Tạo chương trình và có hiện thông báo lỗi (nếu có).

5. 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

6. Tùy chọn "-L <directory name>":
Tìm thư viện (Tương tự -I), mặc định là /usr/lib
Kéo theo nó là "-l <library name>". (Chắc ko cần giải thích gì thêm rồi!)

***/ Lưu ý:
-- Trước khi sử dụng thư viện phải khai báo ở đầu file và có thể sử dụng lựa chọn "-I" ở trên.
-- Nếu ko tìm được thư viện thường xuất hiện lỗi "Undefiled symbols" error.

Bài 4: Các vấn đề về thư viện trong Linux

I. Các loại thư viện:
Thư viện được chia làm 2 loại, để hiểu chi tiết về các loại là vấn đề ko dễ dàng nên tôi chỉ nêu ra, bạn nào muốn tìm hiểu kỹ hơn thì có thể tìm hiểu trên các tài liệu khác.

1. Static libraries:
-- Tên thường có "lib" và mở rộng ".a"
Ví dụ: libmyprog.a

2. Shared libraries:
-- Tên có "lib" và phần mở rộng ".so"
Ví dụ: libmyprog.so

II. Cài đặt thư viện:
Trước khi được sử dụng thì thư viện phải được cài đặt. Việc cài đặt thư viện gần như rất dễ dàng và đơn giản với người đã từng sử dụng Linux.

-- Các thư viện có thể nên cài vào máy là: ncurses, SVGALib và ngoài ra có thể sử dụng các đồ họa cấp cao như GTK/Qt/FLTK thậm chí trực tiếp với X.

Ở đây tôi chỉ đề cập tới "ncurses". Bạn có thể load về và cài vào máy tại địa chỉ:
Code:
http://ftp.gnu.org/pub/gnu/ncurses/
Và hướng dẫn cài đặt chi tiết tại:
Code:
link chết!
Điều cuối cùng trong bài này là hãy quên TC đi:
-- Trong Linux ko có thư viện dos.h
-- Không có thư viện conio.h (Thay vào đó là ncurses)
-- Không có thư viện graphics của TC (thứ tương đối đơn giản) và thay vào đó là SVGAKib (cái này thì từ từ sẽ động đến)
Le.Giang is offline   Trả Lời Với Trích Dẫn
Trả lời



Quyền Sử Dụng Ở Diễn Ðàn
Bạn không được quyền gởi bài
Bạn không được quyền gởi trả lời
Bạn không được quyền gởi kèm file
Bạn không được quyền sửa bài

vB code đang Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Chuyển đến

Chủ đề tương tự
Ðề tài Người Gởi Chuyên mục Trả lời Bài mới gởi
Bạn có thích hợp với nghề Lập trình? myhanh Tư vấn - Hướng nghiệp 13 14-07-2008 09:59 AM
Help me again! kami21 Tư vấn - Hướng nghiệp 13 09-03-2007 03:19 PM
Tiếu Ngạo Giang Hồ - Kim Dung cobemongmo Kim Dung-Tác giả & Tác phẩm 50 31-10-2006 06:00 PM
Làn sóng đầu tư từ Nhật đang chuyển về Việt Nam trongbangpham ..:: Thảo luận nghiêm túc ::.. 0 01-01-1970 07:00 AM


Website sử dụng phần mềm vBulletin phiên bản 3.6.8
do Công ty TNHH Jelsoft giữ bản quyền từ 2000 - 2024.
Múi giờ GMT +7. Hiện tại là 08:33 PM.

Hội CHS Lê Quý Đôn-Long An giữ bản quyền nội dung của website này

Tự động[F9]TELEX VNI VIQR VIQR* TắtKiểm chính tảDấu cũ
phan mem quan ly ban hang | thuê vps