2009-10-15 21 views
27

Gần đây tôi đã chuyển đổi giải pháp đa dự án để sử dụng .dll thay vì .libs cho từng dự án. Tuy nhiên, bây giờ tôi nhận được một cảnh báo liên kết cho từng dự án như đã nêu trong ví dụ. MSDN không phục vụ được tất cả những gì hữu ích với điều này. Tại sao điều này và làm thế nào tôi có thể giải quyết nó?LNK4075: bỏ qua '/ EDITANDCONTINUE' do đặc điểm '/ OPT: ICF'

Warning 2 LNK4075 cảnh báo: lờ đi '/ EDITANDCONTINUE' do '/ OPT: ICF' đặc điểm kỹ thuật LudoCamera.obj

+0

Tại sao lỗi liên kết? Tôi tin bạn, tôi chỉ thiếu kinh nghiệm với C++ và studio trực quan. Chuyển đổi từ ZI (Chương trình Cơ sở dữ liệu Chỉnh sửa và Tiếp tục) sang Zi (Cơ sở dữ liệu Chương trình) đã làm cho các lỗi này biến mất, nhưng nó có thể chỉ là ẩn vấn đề gốc. Bạn có thể xây dựng? – Mark

+2

@Mark có ba giai đoạn biên dịch hiệu quả, (1) phân tích cú pháp - hiểu từng tệp tin cpp nói gì, (2) tạo mã - tạo mã opcodes cho mỗi tệp chức năng và (3) liên kết - liên kết mã opcodes cho mỗi hàm togeather. Cảnh báo này bắt đầu bằng LNK, cho biết đó là lỗi liên kết. –

+1

Đó là một liên lạc tốt đẹp mà điều này vẫn nói "bỏ qua/EDITANDCONTINUE" khi không có tùy chọn "/ EDITANDCONTINUE". –

Trả lời

30

Bạn có thể có "Chỉnh sửa và tiếp tục" hỗ trợ hoặc tối ưu hóa. Thông thường, bạn đặt "Chỉnh sửa và tiếp tục" trên các bản dựng gỡ lỗi và tối ưu hóa khi xây dựng bản phát hành.

Chỉnh sửa và tiếp tục cho phép bạn thay đổi mã trong khi bạn đang gỡ lỗi và chỉ giữ cho chương trình đang chạy. Nó không được hỗ trợ nếu mã cũng phải được tối ưu hóa.

+0

Tôi có thể vượt qua một lá cờ cụ thể không? Tôi đã thông qua '\ Zi' nhưng vẫn nhận được cảnh báo này. – CroCo

+0

Đó là '/', không phải '\\'. Ngoài ra, hãy chắc chắn rằng bạn đã chọn nó trên bản dựng (DEBUG hoặc RELEASE) mà bạn đang cố gắng xây dựng –

0

Tôi biết nó là gì, chúng không phải là phiên bản phát hành. Tôi nghĩ rằng mối liên kết vẫn nghĩ rằng họ đang gỡ lỗi xây dựng, mà vẫn có sửa lỗi và tiếp tục sửa lỗi chức năng được sử dụng khi gỡ lỗi vẫn bật.

Bob.

+0

Tôi đã biên dịch lib cho bản phát hành được nhập vào trong dự án gỡ lỗi và cảnh báo xuất hiện. Một cái gì đó như thế này thực sự. – TechNyquist

6

Tôi cũng nhận được cảnh báo này khi chuyển đổi một dự án VS2008 từ lib để .dll và cách giải quyết là để thay đổi các thiết lập Linker/Tối ưu hóa trên cấu hình gỡ lỗi Win32 từ Default để:

Tài liệu tham khảo = Giữ unreferenced dữ liệu (/ OPT: NOREF)

Enable COMDAT Folding = Không Di COMDATs Redundant (/ OPT: NOICF)

13

tôi có vấn đề này quá. Tôi đã mở các thuộc tính dự án, sau đó bấm Chung trong tab C/C++. Có một tùy chọn cho biết 'Định dạng thông tin gỡ lỗi', mà tôi đã thay đổi thành Cơ sở dữ liệu chương trình (/ Zi) và tôi không nhận được cảnh báo nữa.

Tôi hy vọng điều này sẽ hữu ích. Greetz

Richard