无标题
Cuối cùng không cần dùng VC nữa.
Cuối cùng không cần dùng VC nữa
Đã đến lúc từ biệt trình biên dịch VC
Trong suốt một năm rưỡi vừa qua, tôi tập trung chủ yếu vào dự án đa nền tảng. Tuy nhiên, đây mới chỉ là chủ trương lý thuyết chứ chưa thực sự triển khai chạy thử nghiệm trên các nền tảng khác nhau. Vì chúng tôi tập trung vào tái sử dụng code nhị phân với định dạng module mục tiêu được tùy chỉnh riêng, nên không quá quan trọng việc dùng trình biên dịch nào. Ban đầu dự kiến vẫn sẽ phát triển trên Windows và dùng VC để biên dịch.
Vài ngày gần đây, khi chính thức bước vào giai đoạn đa nền tảng, cân nhắc kỹ càng giữa các lựa chọn, cuối cùng tôi quyết định chuyển sang dùng gcc. Việc loại bỏ VC không phải vì chất lượng của nó kém, mà đơn giản là vì tôi muốn mua một chiếc Mac mini về trải nghiệm ở nhà :D Vì gia đình chưa bao giờ mua máy tính riêng, còn tôi cũng không dùng laptop, mỗi lần về nhà chỉ chơi game rồi ngủ. Khi có máy trong tay, đương nhiên không thể tiếp tục dùng VC trên macOS được nữa.
Do đó, mục tiêu hỗ trợ đa nền tảng của tôi sẽ bao gồm win32, freebsd, linux và macosx. Dù vậy, hiện tại môi trường thử nghiệm chỉ mới có win32 và freebsd nên tôi dành vài ngày qua tập trung vào việc hoàn thiện trên hai nền tảng này.
Công cụ build ban đầu là bjam - lựa chọn năm 2005. Gần đây khi nhìn lại, sau khi khảo sát các công cụ build mới ra đời trong 2 năm gần đây, tôi quyết định quay lại với gmake. Đến hôm nay, môi trường phát triển trên Windows đã trở thành tổ hợp gcc (mingw) + gmake + insight.
Sáng nay chủ yếu thử nghiệm với insight - giao diện đồ họa của gdb, công cụ này thực sự rất tiện lợi. Chỉ có một điều chưa hài lòng là khi tôi thiết lập nó thành trình gỡ lỗi mặc định trong registry ở đường dẫn HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug, thì luôn xảy ra sự cố. Mỗi lần gdb attach vào tiến trình bị debug đều không ổn định, dẫn đến không thể hoạt động bình thường và định vị được mã nguồn. Tuy nhiên nếu chạy trực tiếp chương trình qua insight thì quá trình debug lại diễn ra suôn sẻ.
Hai hôm trước tôi dành toàn bộ thời gian để cấu hình gmake - một trải nghiệm vô cùng đau đầu. Sau nhiều ngày vật lộn, tôi quyết định từ bỏ ý định ban đầu là viết luôn một template Makefile hoàn chỉnh, thay vào đó sẽ cải tiến dần dần theo tiến độ dự án.
Kỳ thực, gcc đã được tôi sử dụng trên freebsd trong nửa năm qua, dù vẫn chưa khai thác hết tính năng. Khi chuyển các dự án cũ từ vc sang mingw, tôi đã nghiên cứu kỹ các tùy chọn của gcc. So với các tùy chọn của VC, gcc có phần phong phú và nghiêm ngặt hơn nhiều. Dù đã rất quen thuộc với command line của VC, lúc chuyển sang gcc vẫn có chút bỡ ngỡ ban đầu.
Cuối cùng, tôi tự đặt ra một dự án lớn cho bản thân: viết lại toàn bộ code C++ hiện tại của dự án sang ngôn ngữ C. Thôi thì đành chịu vậy, vì tôi lại “say mê” ngôn ngữ C rồi :D Ai bảo tôi lại nhiều năng lượng đến thế chứ.