Tôi có một chương trình C++ khá lớn (~ 11mb exe) được biên dịch theo VS2008 và quan tâm để xem liệu tối ưu hóa toàn bộ chương trình có ảnh hưởng đáng kể đến hiệu năng của nó hay không. Tuy nhiên, việc bật tối ưu hóa toàn bộ chương trình và tạo mã thời gian liên kết làm cho liên kết thất bại như sau;Tối ưu hóa toàn bộ chương trình không thành công trong VC2008
1>c:\cpp\Win32\Atlas\tin\TINDoc.Cpp : fatal error C1083: Cannot open compiler intermediate file: '.\releaseopt\TINDoc.obj': Not enough space
1>LINK : fatal error LNK1257: code generation failed
Nhìn vào trình quản lý tác vụ, tôi có thể thấy trình liên kết sử dụng ngày càng nhiều bộ nhớ cho đến khi hết bom. Trình biên dịch đang chạy trên XP 32 bit với tệp 2GB hoặc ram và 2gb. WPO có bị hạn chế đối với các ứng dụng nhỏ hơn và/hoặc môi trường lớn hơn hay không có cách nào để làm cho trình liên kết trở nên tiết kiệm hơn một chút trong việc sử dụng bộ nhớ.
n.b. đã được bật các phần đầu được biên dịch trước, điều này khiến cho quá trình biên dịch thất bại trước khi liên kết và tắt đầu ra của thông tin gỡ lỗi và bất kỳ thứ gì khác có thể lấy thêm tài nguyên. Trợ giúp cho C1083 cho thấy các tệp tiêu đề bị thiếu hoặc xử lý tệp không đầy đủ thay vì thiếu dung lượng.
Chỉnh sửa: Đã làm việc theo VS2010, mặc dù không có tiêu đề biên dịch trước nhưng hiệu suất đạt được không đáng kể. Tôi sẽ để lại tùy chọn này một mình cho đến khi tôi chuyển sang một nền tảng 64bit mạnh mẽ hơn với phiên bản mạnh mẽ hơn của VS2010.
Câu hỏi thú vị. Điều gì về không gian đĩa miễn phí; có lẽ bạn đang chạy thấp? Tôi tìm thấy [lỗi này trên Microsoft Connect] (http://connect.microsoft.com/VisualStudio/feedback/details/581207/visual-studio-2005-sp1-reproducible-linker-error-lkn1257-caused-by-c1083) dường như phù hợp với các triệu chứng của bạn. Các ý kiến nói rằng nó đã được cố định trong VS 2010. Nếu đó là một lựa chọn, bạn có thể thử điều đó. –
Dường như là lỗi tương tự ok. Tôi sẽ thử trên VS2010 khi tôi có cơ hội và đăng kết quả của mình lên. Cảm ơn vì bạn đã phản hồi. BTW, tải dung lượng đĩa trống. –
VC2008 là một con thú dễ vỡ. Trình tối ưu hóa không hoạt động đối với một số trường hợp và có vẻ như bạn có một trường hợp như vậy. –