2013-03-24 43 views
5

Có lỗi đã biết trong gcc 4.7.2 cho MinGW làm cho con trỏ this không hợp lệ được chuyển đến hàm ảo trong một số trường hợp liên quan đến thừa kế ảo và không ảo trong cùng một lớp . Chi tiết có trên this Bugzilla page.gcc 4.7.2 lỗi chức năng ảo

Lỗi này đã cắn tôi và tôi cần sửa lỗi cho ứng dụng Qt tôi đang viết. Có một bản vá lỗi trong trang Bugzilla, nhưng làm thế nào để tôi có được một phiên bản làm việc kết hợp với bản vá này? Theo như tôi có thể nói, trang tải xuống GNU chỉ cung cấp phiên bản gốc, lỗi. Và phiên bản tiếp theo của gcc sau 4.7.2 là 4.8.0, mà tôi không thể sử dụng vì nó sẽ không tương thích với các thư viện Qt của tôi.

Tôi có phải xây dựng gcc từ các nguồn sau khi áp dụng bản vá không? Tôi chắc chắn muốn tránh điều đó nếu tôi có thể!

+0

Cách thay thế để sửa trình biên dịch có thể là giải quyết lỗi trong mã của bạn (ví dụ: bằng cách không sử dụng kết hợp các tính năng kích hoạt lỗi). Không biết nếu nó khả thi trong trường hợp của bạn? – NPE

+0

Không, tôi không sợ. Ngay cả xây dựng gcc từ nguồn là một đề xuất hấp dẫn hơn so với: -/ – TonyK

+2

Ouch. Tôi hy vọng bạn tìm thấy một giải pháp dễ dàng (FWIW, tôi nhớ xây dựng 'gcc' một thời gian dài trước đây, và nó đã được khá đau). – NPE

Trả lời

1

Tôi lấy lời khuyên của Haroogan (để xây dựng lại Qt từ nguồn), nhưng với GCC 4.8.0 thay vì GCC 4.7.1. Nó đã làm việc! Ít nhất, tôi đã sử dụng nó trong ba ngày nay, và nó đã không đưa ra bất kỳ bất ngờ nào. Nhược điểm duy nhất là các tập tin tiêu đề nội tại trong GCC 4.8.0, cần this patch áp dụng cho chúng. Khác hơn thế, nó đã được đi thuyền đồng bằng (tức là nó chỉ đưa tôi hai buổi tối).

Đã cập nhật để thêm: Tôi hiện đang nhận thấy một số vấn đề với trình gỡ rối. Vì vậy, có lẽ tôi đã nói quá sớm!

Các vấn đề liên quan