Tôi hiện đang chuyển một dự án của mình sang GCC và tôi đang sử dụng dự án MinGW-w64 để thực hiện điều này vì tôi yêu cầu hỗ trợ x64 và x86.Môi trường xây dựng C++ sử dụng MinGW-w64 và Boost.Build
Tôi đã gặp sự cố khi thiết lập môi trường xây dựng của mình. Dự án của tôi hiện đang sử dụng thư viện Boost C++, và để làm cho quá trình xây dựng dễ dàng hơn, tôi cũng sử dụng Boost.Build trong dự án của tôi (vì nó làm cho việc tích hợp trở nên đơn giản).
Dưới MSVC này là tốt, vì tôi có thể làm như sau từ dòng lệnh:
b2 toolset=msvc address-model=32 # compile as 32-bit
b2 toolset=msvc address-model=64 # compile as 64-bit
MinGW-w64 đang thực hiện này có vấn đề '', như phiên bản 32-bit và 64-bit dãy công cụ được đặt trong các thư mục riêng biệt. (C: \ MinGW32 và C: \ MinGW64 tương ứng).
Có thể thiết lập Boost.Build theo cách nó sẽ chọn chuỗi công cụ chính xác dựa trên cờ mô hình địa chỉ không? Nếu không, lựa chọn tốt nhất tiếp theo của tôi là gì?
EDIT:
Nếu nó giúp, tôi đang sử dụng rubenvb 4.6.3-1 xây dựng từ trang web của MinGW-w64 trong "Cá nhân xây dựng" thư mục (Tôi đang sử dụng những xây dựng đặc biệt là khi tôi muốn thử lấy mã của tôi để phân tích cú pháp - nhưng không biên dịch - dưới Clang).
EDIT:
Một giải pháp tôi chỉ nghĩ đến việc sẽ được 'bằng tay' thiết lập PATH để trỏ đến các toolchain chính xác trước khi biên soạn, tuy nhiên điều này cho biết thêm thêm một lớp phức tạp cho quá trình xây dựng của tôi mà tôi muốn muốn tránh. Lý tưởng nhất là tôi muốn nó được dễ dàng như nó là cho MSVC, mặc dù tôi hiểu điều này có thể không được. Trong trường hợp xấu nhất, tôi giả sử những gì tôi vừa gợi ý sẽ làm việc, và tôi sẽ chỉ cần thêm các kịch bản để đặt đúng PATH trước khi gọi Boost.Build. Điều đó có nghĩa là hardcoding một con đường mặc dù, mà tôi không muốn làm ...
Có cách nào để thực hiện điều gì đó tương tự mà không cần thêm tiền tố vào chuỗi công cụ không? Tôi muốn sử dụng tên chuỗi công cụ 'mặc định' và có phần 32/64-bit được cờ mô hình địa chỉ phát hiện. – RaptorFactor
ví dụ: b2 toolset = gcc address-model = 32 – RaptorFactor
Không phải là tôi biết, mô hình địa chỉ rõ ràng không được hỗ trợ làm đối số cho mingw-gcc. Tôi có thể hỏi tại sao sử dụng address-model = 32 tốt hơn trong trường hợp của bạn? – Kristofer