Dưới đây là làm thế nào để biên dịch mã C bằng tay dưới Linux không cần thông qua công cụ xây dựng:
gcc -s -O2 -o prog -I. -Iincludedir1 -Iincludedir2 -Llibdir1 -Llibdir2 code1.c code2.c -luse1 -luse2
Tuy nhiên, nếu dự án của bạn là lớn hơn so với một vài tập tin, bạn có thể muốn sử dụng một công cụ xây dựng thay vào đó là (chẳng hạn như CMake, hãy xem câu trả lời của OregonGhost) để tự động biên dịch nhiều tệp và làm cho nó tăng dần. Nếu bạn sử dụng một công cụ xây dựng, nó sẽ chạy gcc dưới mui xe, với các đối số tương tự ở trên. Sẽ hữu ích khi hiểu các đối số ở trên, vì vậy bạn có thể khắc phục sự cố nếu quá trình xây dựng tự động của bạn không thành công.
Điều này sẽ biên dịch mã1.c và mã2.c thành chương trình nhị phân có thể thực thi, tải tệp .h từ., Includeir1 và includeir2, thư viện tải (ví dụ: libuse1.so * và libuse2.vì vậy *) từ thư mục libdir1 và libdir2, sử dụng thư viện use1 (tương ứng với tên tập tin libuse1.so *) và use2.
Nếu bạn gặp lỗi biểu tượng không xác định trong tệp .c, bạn phải chỉ định thêm -I
cờ. Nếu bạn gặp lỗi biểu tượng không xác định trong tệp .o, bạn phải chỉ định thêm các cờ -l
. Nếu bạn gặp lỗi cannot find -l...
, bạn phải chỉ định thêm -L
cờ.
Tôi muốn có nó theo cách, mà tôi có thể sử dụng các thiết lập VisualStudio hiện có và lưu nó như makefile? và sử dụng nó dưới Linux. Điều đó có thể không? /mspoerr – mspoerr
Visual C++, ít nhất một thời gian trước, hỗ trợ xuất dự án/giải pháp sang tệp makefile. Bạn có thể thử nó, nhưng makefile kết quả là (hoặc tại thời điểm đó) một mớ hỗn độn đẫm máu. Bạn cũng có thể thử tạo một XSLT để chuyển đổi tệp dự án (không phải là giải pháp, mặc dù) thành bất kỳ thứ gì bạn thích, bao gồm tệp Makefile hoặc CMake. – OregonGhost