Hỏi/ Thắc mắc - Tạo một file có đuôi .bat để biên dịch file .cpp thành .exe | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Hỏi/ Thắc mắc Tạo một file có đuôi .bat để biên dịch file .cpp thành .exe

ngoctin

Gà con
Mọi người có thể hướng dẫn em viết một đoạn code tạo file .bat. Khi click đúp vào vào file .bat đó thì nó sẽ biên dịch một file .cpp thành một file .exe được không ạ
Em cảm ơn nhiều !!
 

malemkhoang

Rìu Chiến
Biên dịch code C++ từ command line

Chúng ta đã sử dụng IDE kể từ khi bắt đầu học lập trình, liệu việc biên dịch từ dòng lệnh có giúp ích gì không nhỉ? Câu hỏi này cũng khó trả lời bởi nếu đã quen với những thứ tiện lợi, one-click mà không phải nghĩ ngợi nhiều, thì thường người học sẽ ngại làm việc với command line. Điều đó hoàn toàn đúng, sử dụng dòng lệnh sẽ gây nhiều khó khăn cho bạn để làm quen, vấn đề ở đây là không hề có công cụ tốt nhất, nhưng nếu biết sử dụng nhiều công cụ, bạn sẽ biết cách áp dụng đúng cho trường hợp của bạn để tiến tới việc tăng hiệu quả công việc. Các công cụ mạnh mẽ như Visual Studio có thể giúp bạn biên dịch code của mình dễ dàng, nhưng điều đó chưa đủ bởi bạn sẽ cần dùng đến nhiều thư viện, công cụ khác, và hầu hết trong số đó, để sử dụng được đều có những bước dùng tới dòng lệnh.Vậy nên mình viết bài này nhằm nêu ra những bước đơn giản để biên dịch mã nguồn C++, sử dụng MinGW.



1. Cài đặt MinGW
(Dev-C++ và Code::Blocks (bản có kèm trình dịch) thì trong thư mục cài đặt của 2 IDE này đã kèm theo MinGW)

MinGW là gì?

MinGW là từ viết tắt của Minimalist GNU for Windows: môi trường phát triển tối giản sử dụng các công cụ GNU cho Windows.

Để cài đặt bản MinGW bản mới nhất, bạn vào website http://mingw.org và bấm vào Download Installer ở bên phải. Sau khi cài đặt, bạn chạy Installation Manager của nó và cài đặt những gói sau (bấm chuột phải và chọn Mark for Installation, sau đó lên thanh Menu chọn Installation -> Apply Changes):

mingw32-base

mingw32-gcc-g++

msys-base (nếu bạn muốn sử dụng một số công cụ phổ biến của Linux)

Cài đặt MinGW khá là đơn giản. Nếu đã có MinGW, bạn cài đặt biến môi trường theo bài viết sau để có thể gọi trình dịch trên dòng lệnh.

Giá trị được thêm vào biến PATH chính là folder bin của thư mục nơi mà bạn cài MinGW.

2. Biên dịch mã nguồn C++
Giả sử tôi có một đoạn code:

#include <iostream>

int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}
Chúng ta có thể biên dịch và chạy chương trình như sau:

(Tất cả những dòng lệnh này đều giống với dòng lệnh trên Linux)

Bạn vào Run và gõ cmd (có thể dùng tổ hợp phím Windows + R)

g++ -o tên_chương_trình_không_có_dot_exe hello.cpp
Ví dụ (*):

g++ -o hello hello.cpp
sẽ biên dịch ra file thực thi tên hello.exe

Trên môi trường Linux hoặc OSX, file thực thi sẽ không có đuôi .exe như Windows

Vậy nên cú pháp để biên dịch một chương trình đơn giản đó là:

g++ -o program_name source_file.cpp
Một trường hợp khác, giả sử rằng mã nguồn của bạn include một file header của thư viện được cài đặt ở đâu đó, có thể là thư viện được cài bởi các SDK: thư viện Windows, Direct3D,… hoặc thư viện do bạn tự cài đặt, bạn sẽ cần trình biên dịch biết đến đường dẫn này để tìm kiếm file header. Switch sẽ giúp bạn đó là -I.

Ví dụ:

g++ -o hello hello.cpp -I./libs/mylib/
Trường hợp giả định này tôi có một folder libs chứa các thư viện và folder này nằm cùng thư mục với file mã nguồn tôi muốn biên dịch, vậy nên đường dẫn tương đối (bạn có thể dùng đường dẫn tuyệt đối) là ./libs/mylib

Để chạy chương trình, trên command prompt của Windows bạn chỉ cần gõ tên của chương trình đó.

Như vậy, theo cách thức trên, bạn cần tạo ra tệp .BAT với nội dung tương tự như trong ví dụ (*) là được.

(ST)
 


Top