Chuyển đến nội dung chính

C++

 

I. Tải và cài đặt Dev-C++

Link tải: http://www.bloodshed.net/dev/devcpp.html

Chi tiết:

Tải Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0MB) với Mingw/GCC 3.4.2 Mặc dù đây là phiên bản "beta", nhưng nó hoạt động hoàn toàn tốt. Bấm vào SourceForge để vào danh sách các trang tải xuống và chọn một trang. File sẽ có dạng là devcpp4.9.9.2_setup.exe. Lưu file này ở C:\Temp.

C:\Temp

Khi quá trình tải xuống hoàn tất, hãy nhấp vào nút "Open" để bắt đầu quá trình cài đặt (hoặc đi đến C:\Temp và nhấp đúp vào devcpp4.9.9.2_setup.exe). Bạn sẽ thấy một vài màn hình yêu cầu bạn chọn một ngôn ngữ (English) và đồng ý với các điều khoản cấp phép. Chọn cài đặt "typical".

Chọn ngôn ngữ

Chấp nhận vị trí đích được đề xuất để cài đặt:

Chọn vị trí đích

Nhiều thư mục con và file được trích xuất đến vị trí đích này:

Các file và thư mục con

Chọn “Yes” khi được hỏi bạn có muốn cài đặt Dev-cpp cho tất cả người dùng không.

Lưu ý: Nếu cài đặt không thành công, hãy cài đặt lại và thử chọn "No" ở bước này.

Một màn hình cho biết quá trình cài đặt đã hoàn tất:

Cài đặt hoàn tất

Giữ dấu tích trong hộp thoại trên. Nhấp vào "Finish". Màn hình cấu hình lần đầu tiên sẽ xuất hiện:

Màn hình cấu hình

Chọn "English" và "New Look". Trong một số màn hình tiếp theo. Chọn "Yes" cho các đề xuất được hiển thị.

English

Cuối cùng, bạn đã hoàn thành. Nhấp OK.

Nhấp OK

II. Khởi động DEV-C++ và thử cài đặt bằng một chương trình C đơn giản

Chi tiết:

Chương trình sẽ tự động khởi động.

Chương trình khởi động

Nhấp vào File > New > Project. Chọn tên cho dự án (chẳng hạn như "myProject"). Nhấp vào "C Project". Nhấp vào "Empty Project". Nhấp "OK".

Tạo project mới

Trong "Create New Project", nhấp vào "Save" (sau này bạn có thể sẽ muốn tạo các thư mục con riêng biệt cho các dự án khác nhau của bạn).

Lưu project

Nhấp vào File > New > Source File và trong "Add source file to current project", hãy nhấp vào "Yes". Bây giờ bạn sẽ thấy một màn hình nơi bạn có thể chỉnh sửa file nguồn.

Nhập vào một chương trình C đơn giản, như dưới đây. Bây giờ hãy nhấp vào File > Save As và lưu file dưới dạng "hello.c" (hoặc tên khác).

Lưu ý quan trọng: Hãy chắc chắn rằng phần mở rộng của file là .c. Với bất kỳ phần mở rộng nào khác (chẳng hạn như .cpp được đề xuất), bạn sẽ gặp sự cố khi biên dịch.

Nhập một chương trình C đơn giản

Giờ hãy nhấp vào Execute > Compile and Run.

Chương trình sẽ được biên dịch, chạy và ghi kết quả của nó vào một cửa sổ DOS. Nếu bạn có lệnh hệ thống ("pause") trong chương trình, kết quả sẽ ở trong cửa sổ cho đến khi bạn nhấn một phím. Một cách khác để chạy chương trình (sau khi nó đã được biên dịch) là bắt đầu một cửa sổ DOS bên ngoài hệ thống Dev-Cpp, sau đó điều hướng đến thư mục con chứa dự án của bạn và gõ hello.exe.

Hello.exe

Tại thời điểm này, trình biên dịch và môi trường phát triển đã được cài đặt. Bạn cần tìm Dev-C++ được liệt kê trong "Programs" trên menu Start và bây giờ sẽ có thể viết, biên dịch và chạy các chương trình C (và C++). Bạn sẽ có mọi thứ, bao gồm các file, thư viện, và dll cho OpenGL (cũng như tất cả các gói tiêu chuẩn khác) nhưng không có GLUT. GLUT quản lý các cửa sổ cũng như các thành phần giao diện người dùng khác cần thiết cho việc lập trình OpenGL và cần phải được cài đặt riêng.

Nếu bạn không cần GLUT, bạn có thể bỏ nó ngay bây giờ.

III. Tải xuống và cài đặt GLUT

Để chạy OpenGL với GLUT (đó là những gì các chương trình trong cuốn sách của Angel sử dụng), bạn cần phải nhận được 3 file và đặt mỗi file trong thư mục thích hợp của nó. Tất cả các file bạn cần (và nhiều hơn nữa) được chứa trong một file zip.

Chi tiết:

Link tải: http://chortle.ccsu.edu/Bloodshed/glutming.zip

Tải xuống file glutming.zip và lưu file zip này ở một vị trí thuận tiện (có thể là C:\temp).

Tải file zip

Nhấp đúp chuột vào glutming.zip (hoặc giải nén nó). Bạn sẽ thấy các file nằm trong kho lưu trữ zip. (Chương trình giải nén của bạn có thể khác với chương trình được hiển thị ở đây, nhưng sẽ hoạt động tương tự).

Giải nén

Nhấp vào "Extract" để trích xuất tất cả các thư mục con và các file. Chọn một số thư mục thuận tiện để trích xuất chúng (có thể là C:\temp\glutming). Bạn chỉ cần 3 file, nhưng vẫn phải giải nén tất cả chúng.

Extract

Chỉ có 3 file trong các thư mục con khác nhau là cần thiết. Mỗi file trong số 3 file này phải được đặt trong thư mục con với các file khác thuộc cùng loại đó. Sử dụng Explorer để di chuyển các file đến nơi cần thiết.

Lưu ý: Nếu bạn chỉ thấy một số file được liệt kê trong Explorer, hãy nhấp vào View > Options > View và sau đó chọn nút "Show all Files".

glut.h -- sao chép file này vào C:\Dev-Cpp\include\GL

Sao chép từ thư mục con "chưa giải nén" của bạn (dù chúng ở đâu):

Sao chép glut.h

Tới đây:

Vị trí đích

libglut32.a -- sao chép file này từ các thư mục đã giải nén vào C:\Dev-Cpp\lib

Có thể có phiên bản mới hơn của file này ở đó. Thay thế phiên bản đó bằng phiên bản bạn đã giải nén (nếu bạn giữ phiên bản mới hơn, chương trình của bạn sẽ không liên kết chính xác).

Sao chép từ thư mục con "chưa giải nén":

Sao chép libglut32.a

Tới đây:

Đích sao chép

glut32.dll -- di chuyển file này vào C:\WINNT\System32, hoặc vị trí tương tự.

Vị trí cho file này tùy thuộc vào hệ điều hành của bạn. Thư mục mà nó được di chuyển tới là thư mục chứa các Dynamic load library (* .dll). Một cách dễ dàng để tìm nơi đặt nó là tìm glu32.dll (sử dụng công cụ Search từ menu Start).

Glut32.dll

Các thư mục để sử dụng cũng nên có các file glu32.dll và opengl32.dll. Những file này nên đi kèm với hệ điều hành của bạn.

IV. Kiểm tra Dev-cpp bằng GLUT

Bước quan trọng trong việc biên dịch và chạy một chương trình C có chứa các hàm OpenGL và GLUT là cho trình liên kết biết các thư viện đang ở đâu. Điều này được thực hiện bằng cách nhấp vào Project > Project Options > Parameters > Add Library or Options và sau đó điều hướng đến các thư viện bạn cần bao gồm: libopengl32.a, libglu32.a và libglut32.a. Các thư viện nên được thêm vào theo thứ tự này.

Chi tiết:

a. Tạo một thư mục con cho một dự án. Làm điều này đầu tiên, trước khi bạn bắt đầu Dev-Cpp. Tạo một thư mục con mới với "Explorer" bằng cách nhấp vào File > New > Folder.

Tạo thư mục con với Explorer

Ví dụ, tạo một thư mục C:\GLproject.

b. Bắt đầu Dev-cpp:

Dev-cpp

c. Bắt đầu một dự án mới bằng cách nhấp vào File > New > Project. Trong bảng điều khiển hiện ra, đặt tên dự án là "rectangle", nhấp vào "Empty project" và "C": Nhấp vào OK.

Lưu ý: Để biên dịch với OpenGL, bạn phải tạo một dự án. Bạn cần có một dự án (không chỉ là một file C duy nhất) để liên kết trong các thư viện OpenGL.

Bắt đầu dự án mới

d. Trong bảng điều khiển tiếp theo, điều hướng đến thư mục của bạn C:\GLproject và nhấp vào "Save".

Điều hướng thư mục

e. Trong Dev-C++, nhấp vào File > New > Source File và sau đó trong bảng điều khiển tiếp theo "Add to Project", chọn "Yes". Nhấp vào File > Save As và sau đó đặt tên cho file. Điều hướng đến thư mục con của dự án để lưu file trong đó. Đặt tên file là "rectangle.c"

Hãy chắc chắn rằng các tên file kết thúc bằng ".c" vì bất cứ điều gì khác sẽ gây ra vấn đề lớn.

Lưu file dự án

f. Nhấp và kéo chuột qua chương trình sau để bôi đậm nó, sau đó nhấp vào Edit > Copy từ thanh menu của trình duyệt.

#include <GL/glut.h>

const int A = 500; /* length of a side of the monitor window */
const float B = 500; /* length of a side of the clipping rectangle */
const float C = 200; /* length of a side of the square the program draws */

void myinit(void)
{
glClearColor(0.7, 0.7, 0.7, 0.0); /* gray background */

glMatrixMode(GL_PROJECTION); /* In World coordinates: */
glLoadIdentity(); /* position the "clipping rectangle" */
gluOrtho2D( -B/2, B/2, -B/2, B/2);/* at -B/2, its right edge at +B/2, its bottom */
glMatrixMode(GL_MODELVIEW); /* edge at -B/2 and its top edge at +B/2 */
}

void display( void )
{

glClear(GL_COLOR_BUFFER_BIT); /* clear the window */

glMatrixMode(GL_MODELVIEW); /* The following coordinates are expressed */
glLoadIdentity(); /* in terms of World coordinates */

glBegin(GL_POLYGON) ; /* draw a filled polygon */
glColor3f ( 1.0, 0.3, 0.2); /* draw in light red */
glVertex2f( -C/2, -C/2 ); /* (x,y) */
glVertex2f( C/2, -C/2 ); /* (x,y) */
glVertex2f( C/2, C/2 ); /* (x,y) */
glVertex2f( -C/2, C/2 ); /* (x,y) */
glEnd();

glFlush(); /* send all commands */
}

void main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitWindowSize( A, A ); /* A x A pixel screen window */

glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("My Rectangle"); /* window title */
glutDisplayFunc(display); /* tell OpenGL main loop what */
myinit(); /* set attributes */

glutMainLoop(); /* pass control to the main loop */
}

g. Bây giờ, hãy nhấp vào trong cửa sổ chỉnh sửa của Dev-cpp và sau đó nhấp vào Edit > Paste trong menu của nó. Chương trình sẽ xuất hiện trong cửa sổ chỉnh sửa.

Cửa sổ chỉnh sửa

h. Nhấp vào File > Save. File trong thư mục dự án của bạn giờ đây sẽ chứa chương trình OpenGL.

i. Cho Dev-cpp biết cần phải liên kết với thư viện nào. Nhấp vào Project > Project Options.

Chọn thư viện liên kết

j. Bây giờ hãy nhấp vào "Parameters". Nhấp vào nút "Add Library or Object" và điều hướng đến các thư viện sẽ được thêm vào. Chúng được tìm thấy trong C:\Dev-cpp\lib

  • ../lib/libopengl32.a
  • ../lib/libglu32.a
  • ../lib/libglut32.a

Thêm chúng vào theo thứ tự đó. Lưu ý rằng các dấu gạch chéo sẽ xuất hiện trong kiểu Unix "/" chứ không phải kiểu DOS "\".

Thêm thư viện

Khi bạn đã thêm xong 3 thư viện này, bạn sẽ thấy:

Kết quả

Mẫu chính xác có dạng "../../ .." bạn thấy phụ thuộc vào độ phức tạp trong cấu trúc thư mục mà file nguồn của bạn nằm trong đó.

Nhấp OK.

k. Nhấp vào Execute > Compile and Run. Chương trình sẽ được biên dịch, liên kết và chạy:

Chương trình được biên dịch

Nếu mọi thứ không hoạt động (rất phổ biến), hãy nhấp vào tab "Compile Log" để tìm một số thông báo lỗi khó hiểu. Nếu bạn thấy một lỗi như sau, nó có nghĩa là bạn đã làm sai thứ tự khi thêm các thư viện vào dự án:

Compile Log

Cố gắng sửa danh sách thư viện hoặc có thể bắt đầu lại từ đầu.

Bây giờ bạn đã hoàn thành các bước.

Nhận xét