Câu trả lời này sẽ giải quyết câu hỏi chung về việc xây dựng một ứng dụng Windows chỉ có nguồn (bằng C). Nếu bạn may mắn như OP, bạn có thể tìm thấy các tệp nhị phân được biên dịch sẵn.
Điều đầu tiên cần biết ở đây là không có cách duy nhất để xây dựng một ứng dụng từ nguồn. Có khoảng nhiều biến thể như có các dự án khác nhau. Điều đó nói rằng, đây là một số bước chung:
Nếu bạn may mắn, dự án sẽ cung cấp hướng dẫn xây dựng, thường là trong README
tệp. Đôi khi, cũng có thể có một INSTALL
tập tin, hoặc tài liệu khác có sẵn. Nếu có sẵn, hãy làm theo hướng dẫn. Họ đặt cược tốt nhất của bạn.
Như những người khác đã nói, thật không may, rất khó để xây dựng lại các bước xây dựng cần thiết mà không có hướng dẫn. Tuy nhiên, ít nhất chúng ta có thể thực hiện một nỗ lực tốt nhất ở đây, sẽ làm việc cho hầu hết các dự án đơn giản.
Thiếu hướng dẫn, cổng gọi tiếp theo là kiểm tra công cụ xây dựng nào là bắt buộc.
Nếu bạn tìm thấy một tệp có phần mở rộng .sln
hoặc .vcxproj
phần mở rộng, đây có thể là một dự án MSBuild / Visual Studio. Tải xuống một bản sao của Visual Studio Community hoặc Express (cho C ++), mở tệp dự án đó trong đó và nhấp vào nút phát trên thanh công cụ (hoặc sử dụng menu xây dựng).
Nếu bạn tìm thấy một Makefile
, điều này có thể sẽ yêu cầu make
. Nhưng đây là nơi mọi thứ trở nên khó khăn hơn, vì có rất nhiều hệ thống độc lập và không tương thích sử dụng make
.
Vì nó được nhắm mục tiêu vào Windows, nên có lẽ nó sẽ sử dụng MinGW . Tải xuống một bản sao của nó, khởi chạy MSYS từ menu bắt đầu của bạn, điều hướng ( cd
) đến thư mục chứa dự án của bạn và chạy make
.
Trong trường hợp hiếm hoi là Cygwin thay vào đó (không có cách nào dễ dàng để nói, thật không may, nhưng nếu MinGW xây dựng lỗi với lỗi liên quan đến "posix", thì đây là một vụ cá cược tốt), thay vào đó , bạn sẽ phải cài đặt Cygwin . Thật không may, điều này không xây dựng các nhị phân Windows gốc - bạn sẽ phải khởi chạy chương trình thông qua Cygwin mỗi lần.
"Công cụ xây dựng" có thể là một tập lệnh tùy chỉnh theo tên build.bat
hoặc tương tự. Trong trường hợp này, bạn sẽ phải mở nó lên và xem những gì bên trong, hoặc thử chạy nó và xem lỗi là gì. Nếu bạn mở nó và thấy đề cập đến GCC
, hãy quay lại bản 2.2.1. Bước MinGW nhưng chạy tập lệnh tùy chỉnh thay vì make
.
Có thể là không có công cụ xây dựng nào cả. Nếu tất cả những gì bạn gặp là một tập tin .c
hoặc một .cpp
tập tin, thì nó có thể đủ đơn giản để bạn có thể biên dịch thẳng. Đây là, một lần nữa, hầu như luôn luôn là MinGW , vì vậy hãy tải xuống, khởi chạy trình bao MSYS, điều hướng đến thư mục và gọi một trong hai gcc
hoặc g++
khi cần thiết - ví dụ:gcc -o program.exe program.c
Có thể là không ai trong số này làm việc. Nếu bạn nhận được thông báo lỗi ở bất kỳ bước nào, chúng có thể chứa manh mối về những gì còn thiếu. Một khả năng là bạn đang thiếu một số khung hoặc thư viện cần thiết - nếu bạn cảm thấy như vậy, bạn có thể thử tải xuống và thêm chúng vào môi trường xây dựng của mình, nhưng đây thường không phải là một quá trình tầm thường và có quá nhiều biến thể không có cách để che chúng trong một câu trả lời.
Bảng chú giải
Xây dựng công cụ
Một công cụ xây dựng cho phép bạn xây dựng một dự án với rất ít lệnh. Đối với hầu hết các dự án có nhiều hơn một tệp nguồn, một công cụ xây dựng sẽ được tham gia ở đâu đó. Có một số công cụ xây dựng, nhưng phổ biến nhất là:
thực hiện , được sử dụng ở mọi nơi trên Linux và ngày càng phổ biến trên Windows. Các dự án sử dụng make
thường có thể được xác định bởi sự hiện diện của a Makefile
.
MSBuild dành riêng cho Windows và thường được thấy cùng với Visual Studio. Chúng thường sẽ được kèm theo một *.sln
hoặc *.vcxproj
tập tin.
Dụng cụ
Một toolchain là trình biên dịch và các công cụ hỗ trợ. Giống như các công cụ xây dựng, có một số và chúng thường được sử dụng với một trong các công cụ xây dựng.
MSVC là chuỗi công cụ của Microsoft. Đây là chuỗi công cụ phổ biến nhất để phát triển bản địa Windows. Điều này thường được sử dụng với hệ thống MSBuild và các bản dựng thường được tạo thông qua Visual Studio. Tuy nhiên, các dự án MSVC hiện đại cũng có thể sử dụng Makefile
.
GCC ( MinGW ) là một cổng của GCC cho Windows. Thường được sử dụng với make
. Nếu dự án được nhắm mục tiêu vào Windows nguyên bản và có một Makefile
, thì đó có thể là cho MinGW-GCC.
GCC ( Cygwin ) tạo ra môi trường tương thích POSIX. Điều này cho phép bạn biên dịch trực tiếp hầu hết các chương trình được viết cho Linux hoặc Unix và để nó hoạt động trực tiếp trong Windows. Gần đây hơn trong Windows 10, Bash trên Ubuntu trên Windows là một sự thay thế. GCC thường được sử dụng kết hợp với make
.
Khung và thư viện
Thư viện là các bộ mã có thể tái sử dụng được viết bởi người khác, mà nhiều chương trình phụ thuộc vào để tránh phát minh lại bánh xe. Bạn cần phải có những phụ thuộc này để xây dựng dự án. Nếu bạn may mắn, chúng sẽ được bao gồm trong lần tải xuống ban đầu của bạn, nhưng điều này không phải lúc nào cũng đúng.
Các khung có hiệu quả là một bộ sưu tập các thư viện. Nhiều dự án sử dụng một khung mà bạn cũng cần. Chúng thường đi kèm với hệ thống xây dựng riêng của họ, nhưng liệt kê tất cả chúng là không thể.
Phần khó nhất là xử lý các phụ thuộc thư viện và khung phụ. Nếu, giả sử, dự án sử dụng Qt - thì bạn sẽ cần toàn bộ mớ hỗn độn đó để xây dựng nó đúng cách. Đây là một công việc rất lớn và trừ khi bạn có kinh nghiệm trước đó, có lẽ tốt hơn là chỉ nhờ người khác giúp đỡ trực tiếp ở đây.