2010-03-02 29 views
5

Tôi có một người bạn đang tham gia một dự án Visual C++ từ tôi và đang gặp sự cố khi chạy nó. Đó là một ứng dụng đồ họa và nó sử dụng thư viện GUI Qt. Lý do tôi đề cập đến điều này là do lỗi bên dưới.Vấn đề với Visual C++ program-- không thể tìm thấy Debug CRT

Ông có thể xây dựng và liên kết các chương trình sử dụng Visual Studio 2010, nhưng khi anh ta chạy nó thông điệp này đi lên trong trình xem sự kiện:

Activation context generation failed for "D:\Test\Qt\4.2.2\bin\QtGuid4.dll". Dependent Assembly Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b", type="win32", version="8.0.50608.0" could not be found. Please use sxstrace.exe for detailed diagnosis.

Khi chúng ta làm như thông điệp yêu cầu và chạy Sxstrace.exe, dưới đây là những gì chúng tôi thấy:

Begin Activation Context Generation. Input Parameter: Flags = 0 ProcessorArchitecture = Wow32 CultureFallBacks = en-US;en ManifestPath = D:\Test\Qt\4.2.2\bin\QtGuid4.dll AssemblyDirectory = D:\Test\Qt\4.2.2\bin\

--------------- INFO: Parsing Manifest File D:\Test\Qt\4.2.2\bin\QtGuid4.dll. INFO: Manifest Definition Identity is (null). INFO: Reference: Microsoft.VC80.DebugCRT,processorArchitecture="x86"type="win32",version="8.0.50608.0" INFO: Resolving reference Microsoft.VC80.DebugCRT,processorArchitecture="x86""win32",version="8.0.50608.0". INFO: Resolving reference for ProcessorArchitecture WOW64. INFO: Resolving reference for culture Neutral. INFO: Applying Binding Policy. INFO: No publisher policy found. INFO: No binding policy redirect found. INFO: Begin assembly probing. INFO: Did not find the assembly in WinSxS. INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.DebugCRT\8.0.50608.0__1fc8b3b9a1e18e3b\Microsoft.VC80.DebugCRT.DLL. INFO: Did not find manifest for culture Neutral. INFO: End assembly probing. INFO: Resolving reference for ProcessorArchitecture x86. INFO: Resolving reference for culture Neutral. INFO: Applying Binding Policy. INFO: No publisher policy found. INFO: No binding policy redirect found. INFO: Begin assembly probing. INFO: Did not find the assembly in WinSxS. INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.DebugCRT\8.0.50608.0__1fc8b3b9a1e18e3b\Microsoft.VC80.DebugCRT.DLL. INFO: Attempt to probe manifest at D:\Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT.DLL. INFO: Attempt to probe manifest at D:\Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT.MANIFEST. INFO: Attempt to probe manifest at D:\Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.DLL. INFO: Attempt to probe manifest at D:\Test\Qt\4.2.2\bin\Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.MANIFEST. INFO: Did not find manifest for culture Neutral. INFO: End assembly probing. ERROR: Cannot resolve reference Microsoft.VC80.DebugCRT,processorArchitecture="x86", publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50608.0".

Xin lỗi vì độ dài của thư đó, nhưng tôi nghĩ nó có thể chạy một số kỷ niệm. Đây có phải là trường hợp của ông không có Visual C++ 2005 (Tôi tin rằng đó là nơi VC80 đến từ) C thư viện thời gian chạy được cài đặt? Nếu vậy, anh ta có thể tải xuống gói phân phối lại VC++ và cài đặt nó hay không, và tất cả sẽ tốt không? Hay đây là một vấn đề hoàn toàn khác?

Trả lời

7

Nếu bạn của bạn không có VS2005 được cài đặt, anh ấy sẽ không có thư viện thời gian chạy gỡ lỗi cho nó. Họ không phải là một phần của runtimes redistributable và IIRC, Microsoft cấm bạn phân phối chúng mình, do đó bạn phải có VS2005 cài đặt để có được chúng.

Tôi khuyên bạn nên xây dựng lại thư viện bị ảnh hưởng nếu có thể; Tôi mơ hồ nhớ lại rằng có một vài bài viết trên web về cách xây dựng lại QT GPL bằng cách sử dụng Visual Studio, mà tôi tin rằng không được hỗ trợ chính thức.

Trộn C++ runtimes yêu cầu nhiều sự cẩn thận và bạn có thể rơi vào một cái bẫy khá khó chịu nếu bạn không hiểu đúng. Nếu xây dựng lại tất cả các thư viện với VS2010 không phải là một lựa chọn, bạn của bạn sẽ phải giữ VS2005. Nó có thể là giá trị kiểm tra nếu MS vẫn cung cấp Express Edition của VS2005 để tải về.

1

Bạn cũng có thể làm dưới đây: LOL

Nếu bạn đang chạy ứng dụng của bạn trên Windows 7 chế độ X64 mà xây dựng trong X64 mục tiêu, bạn phải cài đặt sau X64 SP1 Redistributable Package

http://www.microsoft.com/download/en/details.aspx?id=2092

Lưu ý: Tệp kê khai sẽ thay đổi thành bộ xử lýArchitecture = X64 và type = "win64"

Nếu bạn đang xây dựng ứng dụng của mình với X86 (chế độ 32 bit) chạy trên lớp WOW64 bạn h ave để cài đặt X86 SP1 gói redistributable

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582

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