Các bạn bít cách nào viết code để sử dụng trình biên dịch của VC biên dịch mã nguồn không?
Bài 1. Biên dịch một chương trình đơn giản
Bước 1:
Bạn gõ một đoạn chương trình thật đơn giản (người ta vẫn thường coi đó là chương trình in ra màn hình chữ "Hello world!"), đoạn lệnh này nằm trong 1 file .cpp (main.cpp chẳng hạn). Sau đó nhấn F7.
(Tất nhiên là tôi đang nói tới chương trình không có lỗi).
Bước 2:
Mở trình quản lí thư mục (My Computer hoặc Explorer), vào đến thư mục chứa Project mà bạn tạo, rồi tìm thư mục có chữ "Debug".
Bước 3:
Quan sát trong thư mục đó ta thấy có rất nhiều files với các phần mở rộng (đuôi) khác nhau. Đặc biệt chú ý tới 2 file có tên là "main.obj" và "main.exe".
Vậy file main.obj và main.exe đó để làm gì?
* File "main.obj" chứa chương trình đã được biên dịch sang mã máy.
* File "main.exe" là mã máy được sắp theo cấu trúc thực thi để có thể chạy trên nền hệ điều hành Dos hoặc Windows (thường gọi là file khả thi hay file thực thi).
Vậy khi nhấn F7, các công việc được thực hiện có thể tạm chia làm 02 giai đoạn:
* Giai đoạn 1: từ chương trình nguồn (code mà ta gõ) sang mã máy chứa trong file .obj.
* Giai đoạn 2: từ file .obj sang file .exe.
File .exe ở đây có thể chạy trên các máy tính khác nhau (máy đó có thể không cần cài VC++6.0, ...) nhưng phải là hệ điều hành DOS hoặc Windows trong trường hợp này (sẽ mở rộng đối với các hệ điều hành khác và trình biên dịch khác sau).
Câu hỏi:
* Nếu xóa file main.obj trong thư mục debug thì file main.exe có chạy và cho kết quả như mong muốn không?
* Nếu xóa file nguồn (main.cpp) và file khả thi (main.exe) đi, chỉ còn file main.obj thì có tạo được file main.exe không?
Trả lời 2 câu hỏi bài trước:
* Nếu xóa main.obj thì file main.exe vẫn chạy và cho kết quả như bình thường.
* Nếu xóa file mã nguồn (main.cpp) và file khả thi (main.exe) đi, thì từ file main.obj vẫn có thể tạo ra main.exe và file này chạy như bình thường.
Để làm được cách thứ 2, ta có thể vào cửa sổ cmd (Start --> Run --> cmd). Chuyển đến thư mục Debug. Gõ lệnh link main.obj rồi enter. Lập tức một file main.exe được tạo ra.
Bài 2: "VC++6.0 biên dịch một chương trình C++ khi có từ khóa #include một file .h nào đó"
Bạn tạo ra một file test.h trong cùng Project với file main.cpp của bài 1. Trong file test.h chứa khai báo một hàm (nguyên mẫu hàm), ví dụ:
void F1( ); chẳng hạn.
File test.h có nội dung như sau:
C++ Code:
#ifndef test_h #define test_h void F1(); #endif
Tạo ra một file test.cpp có nội dung như sau:
C++ Code:
#include "test.h" #include <iostream.h> void F1() { }
Khi đó trong file main.cpp:
C++ Code:
#include <iostream.h> #include "test.h" void main() { F1(); }
Thực hiện như bài 1 và quan sát. Đợi giải thích ở bài sau.
Sau khi nhấn F7 và vào thư mục Debug, ta thấy có files: main.obj, test.obj và bai2.exe.
* main.obj, test.obj chứa mã máy được biên dịch từ các đoạn lệnh trong các file tương ứng là main.cpp và test.cpp.
* bai2.exe chứa cấu trúc khả chạy của chương trình trên.
Các bạn thao tác theo một số đề nghị sau và tìm ra câu trả lời:
Dãy thao tác thứ nhất:
* Chỉ copy file main.obj vào một thư mục khác
* Vào Start --> Run --> CMD
* Chuyển đến thư mục chỉ có file main.obj
* Gõ link main.cpp
Vì không có file test.obj nên nó không tìm thấy định nghĩa của hàm F1().
In code we trust
Các bạn bít cách nào viết code để sử dụng trình biên dịch của VC biên dịch mã nguồn không?
# ndthaiit : ông hỏi cái gì tui không hiểu
360 yahoospacetime blog
Tripod blog
cũng của spacetime trên wordpress
The god programmin language-C
My name is 7h36h5ng
password yahoo:mDn4kdn1z
Tôi thấy câu hỏi của bạn ấy cũng dễ hiểu đấy chứ .Chắc định xây dựng một IDE dựa trên bộ dịch của VC++ à ?
cho mình hỏi iamvtn là cái Visual C++ 6.0 này có gì giống và khác nhau với Visual C++ 2005 không ? Mình dùng visual C++ 2005 mà nhiều khi có 1 vài tệp như include<graphic.h> hay include <window.h> bị bug hoài ! Bạn có thể viết 1 bài hướng dẫn cho mình được không ? cám ơn bạn rát nhiều ! bài viết của bạn rất hay và bổ ích~~
Ko phải bị bug mà do bạn khai báo sai, chính xác là:nhiều khi có 1 vài tệp như include<graphic.h> hay include <window.h> bị bug hoài
#include "graphics.h"
#include "windows.h"
Sao mấy bạn cứ lấy kiến thức về TC++ hay BC++ mà dùng cho VC++ vậy! Trong VC++ hoàn toàn không có "Graphics.h" nên bạn có include như thế nào đi nửa thì vẩn vậy thôi!
- Bạn chỉ có thể dùng đồ họa trong VC++ bằng cách dùng Device context mà thôi (HDC)
- Mổi hảng khi tạo ra một compiler thì họ sẻ có riêng các file header và lib của họ chứ đâu phải cứ là C++ compiler thì bắt buộc phải có tất cả các file header và lib giống nhau đâu!
vậy trong cửa sổ cmd thì gõleengh gì để dịch ra file obj vậy bác?ta có thể vào cửa sổ cmd (Start --> Run --> cmd). Chuyển đến thư mục Debug. Gõ lệnh link main.obj rồi enter. Lập tức một file main.exe được tạo ra