2013-06-11 80 views
13

Khi xây dựng một thư viện tĩnh (.LIB) trong MS Visual Studio 10 với thông tin gỡ lỗi, các .PDB luôn được đặt tên vc100.pdb.
(như trái ngược với việc xây dựng một .DLL, nơi mà các thông tin gỡ lỗi là [MyProjectName].pdb)Các tệp PDB có Thư viện trong Visual Studio 10

Đây là một vấn đề đối với tôi bởi vì tôi đang cố gắng để sao chép các thư viện khác nhau (và các ký hiệu gỡ lỗi của họ) vào một thư mục của "PublishedLibraries", nhưng tất cả các tên vc100.pdb rõ ràng là va chạm.

tôi chắc chắn rằng tôi có thể thay đổi tên của mỗi .PDB để phù hợp với .LIB của nó, nhưng đối với tôi những câu hỏi lớn là tại sao không Visual Studio nghĩ vc100.pdb là một cái tên tốt hơn so với projectA.pdb ??
Chúng tôi dự định làm việc với Thông tin gỡ lỗi từ nhiều thư viện như thế nào nếu tất cả các tên xung đột?

+1

err, cách bạn gỡ lỗi trực tiếp .lib? IMO nếu bạn xây dựng nó thành một DLL hoặc exe .pdb cho rằng sẽ có mọi thứ cần thiết để gỡ lỗi. –

+1

Nếu tôi xây dựng một số thư viện (và một số mã khác) thành một tệp thực thi, không phải là thông tin cần thực thi đó từ các tệp 'vc100.pdb' khác nhau? Làm thế nào để nó đọc tất cả nếu tất cả họ đều có cùng một tên xung đột? – abelenky

+1

Đây là "cơ sở dữ liệu chương trình", nó chứa thông tin phụ thuộc. Để lại nơi nó được tạo ra. PDB bạn cần không được tạo ra cho đến khi bạn liên kết thư viện tĩnh thành một tệp thực thi. –

Trả lời

19

Nếu bạn sử dụng/Z7 (thay vì/ZI hoặc/Zi) [trong UI C/C++ -> General -> Debug Thông tin Format] sau đó thông tin debug được nhúng trong file lib riêng của mình, thay vì một riêng biệt pdb, có nghĩa là bạn không cần phải lo lắng về cùng một tên.

Khi bạn xây dựng tệp thực thi cuối cùng của bạn (.exe hoặc .dll) thì bạn sẽ nhận được một pdb đã hợp nhất từ ​​tất cả các pdbs được nhúng nhỏ.

thấy this question để biết thêm

của nó cách tôi đã luôn luôn được quản lý vấn đề này vào đội của tôi, như bạn không thể mất các thông tin gỡ lỗi trong quá trình xây dựng. Nó bloats libs hơi [nhưng không có nhiều hơn trong tổng số hơn có cả lib và pdb], nhưng như bạn có thể không gửi libs bạn không nên lo lắng nhiều về điều này.

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