Tôi đang biên dịch ffmpeg cho win32 bằng cách sử dụng trình biên dịch Microsoft cl. Tôi cần phải biên dịch nó mà không có bất kỳ tối ưu hóa, vì vậy bổ sung cấu hình --extra-CFLAGS = -Od"Biên dịch FFMPEG không biên dịch tối ưu hóa
Compilation đi tốt, nhưng có một vài nơi như this:..
cuối 3 IFS
Mã biên dịch, nhưng không liên kết bởi vì các cuộc gọi như ff_sbrdsp_init_arm (s), không bị loại bỏ bởi trình biên dịch Tất nhiên mọi thứ đều tốt khi biên dịch với tối ưu hóa, sau đó trình biên dịch sẽ xóa tất cả nếu (0) s.
Có tại sao nếu (0) được sử dụng thay vì #if 0 của preprocessor?
Có mẹo nào ẩn đằng sau điều này không?
Có, nếu tôi chỉ biết cách bật tối ưu hóa loại bỏ mã chết nhưng không có tối ưu hóa khác ... BTW. Tôi cần nó để gỡ lỗi - từng bước trong trình gỡ lỗi –
@Kamil_H Sẽ rất khó để xử lý việc thay thế tự động, nhưng bạn ít nhất có thể sử dụng regexp 'if ([A-Z _] *)' để tìm tất cả các trang web có khả năng cần sửa đổi (điều này sẽ tìm tất cả các điều kiện 'if' chỉ bằng chữ in hoa và dấu gạch dưới). –
OK, cảm ơn lời khuyên, nhưng câu hỏi của tôi hơi khác: Có bất kỳ lý do nào cho những ifs này không. Có vẻ như ai đó đã cố tình làm vậy. –