User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 6 của 6

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

  1. #1
    .:: Grumpy svBKer ::. Avatar của 1973
    Tham gia ngày
    Mar 2010
    Bài gửi
    3.793

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

    Bài này đi cóp nhặt từ nơi khác, chắc là hữu ích cho dân BK nhà mình:

    ************************************************** ********

    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
    ~$ which gcc
    /usr/bin/gcc
    ~$ which g++
    /usr/bin/g++
    ~$ which make
    /usr/bin/make
    ~$ which vi
    /usr/bin/vi
    ~$ 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)
    ~$ pico
    #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:
    ~$ gcc -o hello hello.c
    >_

    -- Nếu ko có lỗi gì thì sẽ ra file hello. Chạy thử bằng lệnh:
    ~$ ./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: ~$ 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ụ: ~$ 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ỉ:
    http://ftp.gnu.org/pub/gnu/ncurses/


    Đ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)

    ...
    Contact me:
    Email: sangnd [at] svBK.vn
    Personal website: My Blog | Chat với người lạ
    Facebook Page của Bách Khoa Forum: http://www.facebook.com/svbk.vn

  2. #2
    .:: Grumpy svBKer ::. Avatar của 1973
    Tham gia ngày
    Mar 2010
    Bài gửi
    3.793

    Mặc định

    Các bạn có thể sử dụng trình soạn thảo (editor) emacs để phục vụ lập trình, cài đặt bằng lệnh sau:

    sudo apt-get install emacs
    >_


    Sử dụng
    +Mở teminar để tạo 1 file .c để gõ code vào file này,ta dùng lệnh emacs name_file.c

    vd:

    emacs hai.c
    >_


    như vậy là bạn đã có 1 file.c

  3. #3
    svBK's Newbie
    Tham gia ngày
    Dec 2011
    Bài gửi
    5

    Mặc định Re: Bắt đầu về lập trình C/C++ trên Linux

    sao ko dùng DEV_C++ nhj?. mình thấy cũng ổn ma`

  4. #4
    .:: Grumpy svBKer ::. Avatar của 1973
    Tham gia ngày
    Mar 2010
    Bài gửi
    3.793

    Mặc định Re: Bắt đầu về lập trình C/C++ trên Linux

    Dev-C++ làm gì có trên Linux

  5. #5
    Điều hành viên Avatar của iexplore
    Tham gia ngày
    Sep 2010
    Bài gửi
    208

    Mặc định Re: Bắt đầu về lập trình C/C++ trên Linux

    các hàm toán học trên Linux phải dùng thư viện gì thế? #include <math.h> không được. Khi compile báo lỗi:
    ‘abs’ was not declared in this scope
    >_

  6. #6
    .:: Grumpy svBKer ::. Avatar của 1973
    Tham gia ngày
    Mar 2010
    Bài gửi
    3.793

    Mặc định Re: Bắt đầu về lập trình C/C++ trên Linux

    Khi biên dịch cậu thêm tham số -lm hoặc -lmath xem có được không. Ví dụ biên dịch như sau:

    gcc -lmath <filename>
    >_


    hoặc

    gcc -lm <filename>
    >_

  7. Tớ cảm ơn 1973 đã chia sẻ.


+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Chủ đề tương tự

  1. Sử dụng Linux trên đĩa CD
    Gửi bởi Nistelrooy trong mục Hệ điều hành UNIX - Linux
    Trả lời: 1
    Bài cuối: 30-09-2011, 10:05 PM
  2. Linux
    Gửi bởi CrazyTrung trong mục Hệ điều hành UNIX - Linux
    Trả lời: 46
    Bài cuối: 03-11-2007, 06:08 PM
  3. Linux: Việt Nam & Thế giới
    Gửi bởi Nistelrooy trong mục Hệ điều hành UNIX - Linux
    Trả lời: 2
    Bài cuối: 07-10-2007, 12:17 PM
  4. Help me! Ko cài dc Linux trên máy tính xách tay.
    Gửi bởi chitbk trong mục Hệ điều hành UNIX - Linux
    Trả lời: 11
    Bài cuối: 20-02-2007, 10:42 PM
  5. on thi LInux
    Gửi bởi noviceit trong mục Các vấn đề CNTT khác
    Trả lời: 24
    Bài cuối: 14-07-2004, 10:18 PM

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube