PDA

View Full Version : ~ Hướng dẫn cài đặt package để lập trình C/C++ trong Fedora 8



✓Xcross➤☨
14-12-2007, 12:59 PM
Bài này mình hướng dẫn các bạn chuẩn bị công cụ cần thiết để lập trình hiệu quả nha.

Yêu cầu :
+ Một phiên bản Linux (trong hướng dẫn của mình sẽ lấy Fedora 8 để ứng dụng)
+ Kết nối Internet

Cài đặt :

1. SIMPLE MODE: Về cơ bản ta chỉ cần 1 text editor và 1 compiler là có thể lập trình C được rồi .
Vì thế với SIMPLE MODE ta sẽ sử dụng chế độ Terminal (tương tự Command Prompt của Windows)
+ Text Editor : ta sẽ sử dụng VI để xử lý, VI tích hợp sẵn trong bash shell nên ta không cần cài đặt gì hết.
+ Compiler : ta sẽ cài bộ GCC for C/C++
Cài đặt GCC theo hướng dẫn của mục 2. dưới đây.

2. GUI MODE: ta sử dụng các bộ IDE hỗ trợ lập trình C.
Ở đây để thuận tiện code C/C++ và làm project ta sẽ sử dụng KDevelop for C/C++



Application -> Add/Remove Program

Ta thấy có 2 ListBox: bên trái là Category còn bên phải là Category Content:
+ Chọn bên Category: Development
+ Chọn bên Category Content: đánh dấu KDE Software Development
Theo mặc định default thì nó sẽ chọn cho ta bọ KDevelop for C/C++
Nếu bạn muốn kiểm tra thì đánh dấu vào KDE Software Development thì chọn phía dưới có Optional Package và tìm bộ này:
KDevelop - <version> - Integrated Development Environment for C/C++
đánh dấu vào rồi sau đó chọn Apply dưới cùng và chờ Complete


Sau khi setup xong nó sẽ xuất hiện trong mục


Application -> Programming -> KDevelop: C/C++


~ FAQ:

1. Tại sao không bắt đầu ngay từ GUI MODE mà lại bắt đầu từ SIMPLE MODE ?
Trả lời: vì GUI trên cơ sở của SIMPLE, sử dụng chung 1 compiler (GCC) nên bạn phải thông thạo cách bắt lỗi (debug) code. Khi lập trình trên Linux, bạn sẽ phải sử dụng rất nhiều system_call hay shell command vì thế bạn phải làm trên SIMPLE trước.

2. Lập trình trên C/C++ Linux và có gì khác trên Windows ?
Trả lời: khác nhiều chứ. Vì 2 OS khác nhau nên cấu trúc định dạng file xử lý khác nhau, cách làm việc tổ chức khác nhau, đặc biệt Kernel khác nhau nên API cũng khác nhau do đó lập trình trên các OS khác nhau đòi hỏi sự cần cù và ghi nhớ nhiều.

3. Liệu một source code trên Linux có thể run được trên Windows ?
Trả lời: hoàn toàn có thể nếu chương trình đó là thuần C, tức là không có sử dụng API của riêng OS nào cả.

~ Mọi câu hỏi và thắc mắc của bạn xin post tại đây nhé ! Tất cả khu vực này là danh cho Linux thôi đó nên đừng có vác hàng trên Windows vào đây đánh đố nhé. (\'o)

hieubm
15-12-2007, 07:41 PM
3. Liệu một source code trên Linux có thể run được trên Windows ?
Trả lời: hoàn toàn có thể nếu chương trình đó là thuần C, tức là không có sử dụng API của riêng OS nào cả.
Cho hỏi là chuơng trình thuần C chạy được trên Windows mà cậu nói tới có phải là ứng dụng Windows ko hay là ứng dụng DOS.

✓Xcross➤☨
15-12-2007, 08:05 PM
Cho hỏi là chuơng trình thuần C chạy được trên Windows mà cậu nói tới có phải là ứng dụng Windows ko hay là ứng dụng DOS.

Thuần C tức là chỉ sử dụng các hàm built-in của ngôn ngữ C (được định nghĩa trong các thư viện chuẩn ANSI-C); nó không phụ thuộc vào OS nào cả mà chỉ phụ thuộc vào cái code viết thế nào thôi.

Windows sử dụng Hybrid - Linux sử dụng Monolithic.
Giờ trong code C cậu viết mà cho một cái Win32API của Hybrid Windows mà vác sang Linux chạy thì không thế được vì Linux làm gì có Win32API :|...tương tự mang một chương trên Linux có sử dụng Kernel API bỏ sang Windows để chạy thì làm sao mà chạy được vì làm gì có Kernel API của Linux.

hieubm
15-12-2007, 09:35 PM
Cậu hiểu nhầm ý của mình rồi. Ý mình muốn hỏi là một chuơng trình thuần C thì khi đem sang Windows chạy nó sẽ chạy kiểu DOS (cửa sổ dòng lệnh) hay là kiểu cửa sổ.

Mình nghĩ Windows có các hàm tạo cửa sổ riêng nên, các chuơng trình thuần C chỉ chạy được kiểu DOS có đúng ko?

✓Xcross➤☨
15-12-2007, 09:52 PM
Cậu hiểu nhầm ý của mình rồi. Ý mình muốn hỏi là một chuơng trình thuần C thì khi đem sang Windows chạy nó sẽ chạy kiểu DOS (cửa sổ dòng lệnh) hay là kiểu cửa sổ.

Mình nghĩ Windows có các hàm tạo cửa sổ riêng nên, các chuơng trình thuần C chỉ chạy được kiểu DOS có đúng ko?

Thuần C không có giao diện đồ họa :|

- Giao diện đồ họa của Windows viết trên cơ sở Win32API
- Giao diện đồ họa của Linux viết trên một số thư viện ví dụ Gnome(Tk), KDE(Qt+)

..không thể mang CHƯƠNG TRÌNH từ OS này sang OS khác...
..chỉ có thể đem source code 'thuần C' từ OS này sang OS khác...muốn dùng được thì Compile với Compiler phù hợp OS đó. Chương trình sẽ run theo kiểu mà Compile dịch ra.

Ví dụ: tôi viết một chương trình thuần C (chắc chắn là ở chế độ Terminal vì không thể có GUI được nếu code thuần C cho multi-platform) rồi đem vào Windows dùng một compiler để compile nó ra và chạy. Kết quả sẽ run ở chế độ Command Prompt của Windows. (Terminal của Linux/MacOS tương đương với Command Prompt/DOS của Windows)..

Hãy viết thử một source đơn giản thuần C và run giữa 2 OS bạn sẽ hiểu


#include <stdio.h>

int main(void)
{
printf(" Compile me in many OS then see how I work ! \n");
return 0;
}

hieubm
16-12-2007, 09:23 PM
OK! Mình hiểu rồi. Cho mình hỏi chuơng trình VLC (và một số chuơng trình khác) đã làm kiểu gì mà chạy trên cả đồ họa của Linux và Windows. Không lẽ mỗi platform họ lại viết mới hoàn toàn sao?

✓Xcross➤☨
16-12-2007, 09:49 PM
OK! Mình hiểu rồi. Cho mình hỏi chuơng trình VLC (và một số chuơng trình khác) đã làm kiểu gì mà chạy trên cả đồ họa của Linux và Windows. Không lẽ mỗi platform họ lại viết mới hoàn toàn sao?

Đúng rồi đó. Mỗi platform họ viết một code khác nhau nhưng về cơ bản thuật giải và cấu trúc thiết kế không hề thay đổi (skeleton) . Tương tự như cái IDE CodeBlock đó 0:).

Dàn bài thì không thay đổi nhưng văn thì mỗi người một kiểu vì mỗi người một ý thích 0:).

trunghunguit
12-03-2008, 09:43 PM
Windows sử dụng Hybrid - Linux sử dụng Monolithic
✓Xcross➤☨ giải thix giùm mình chỗ này đi, thanks):)T

tu0ng_c0ng
08-11-2008, 08:05 PM
bản thử qua xem nhé.
Nếu không có mạng bạn có thể tham khảo bài viết này.

http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/intro.html#WHATCANWEDO (http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/intro.html#WHATCANWEDO)


hoặc có mạng thì dùng các lệnh sau.

1

sudo apt-get install build-essential

2

sudo apt-get install libncurses5-dev

trantuananh24hg
14-12-2008, 04:06 PM
@Xcross: E giới thiệu dùm a 1 tool + IDE nào, tất nhiên có cả GUI để code C trên unix nhé. :) Thanks nhiều.

p/s: Nếu đc, send address qua YM giúp a! :)

PeteHaker
14-01-2009, 02:00 PM
Kdevelop: www.kdevelop.org
Eclipse for C/C++: www.eclipse.org
Code::Blocks: http://www.codeblocks.org
Trên Gnome, dùng Anjuta : http://anjuta.sourceforge.net/

Mình vote cho Anjuta vì vốn thích Gnome :D