Làm thế nào để bạn nói với Visual C++ Express 2008 để liên kết tĩnh các thư viện runtime thay vì động? Exes của tôi hiện không chạy trên máy tính w/o một số loại VS cài đặt và tôi rất thích thay đổi điều đó. :)Static Runtime Library Linking cho Visual C++ Express 2008
Trả lời
Xin lỗi, tôi không có VC++ Express để kiểm tra, nhưng trong phiên bản Standard tôi sử dụng Project Properties -> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library. Dll và Dll Debug là dành cho liên kết động.
Bạn có chắc chắn 100% rằng bạn muốn thực hiện việc này không? Hãy xem xét rằng nếu bạn làm và có một lỗ hổng bảo mật được tìm thấy trong thư viện thời gian chạy, Microsoft sẽ không thể vá ứng dụng của bạn thông qua Windows Update.
Một giải pháp khác là gói Visual C++ Runtime Redistributable với ứng dụng của bạn. Nó cài đặt rất nhanh và không yêu cầu Visual Studio. Nó cũng quan trọng cần lưu ý rằng bạn không nên phân phối mã được liên kết với các thư viện runtime debug như những người yêu cầu Visual Studio. Xem số blog post này để biết thêm thông tin về cách đóng gói phân phối lại.
EDIT: Với điều đó đã nói, tùy bạn. Quan điểm của tôi đơn giản là bạn không nên bỏ qua liên kết động dựa trên ý tưởng rằng người dùng phải có "một số loại VS được cài đặt", điều đó không đúng.
Xem câu trả lời cho câu hỏi này: How do I make a fully statically linked .exe with Visual Studio Express 2005 ?. Đó là cho VS2005 Express nhưng câu trả lời vẫn giữ.
Đối với thời gian chạy C, hãy chuyển đến dự án cài đặt, chọn C/C++ rồi 'Mã Thế hệ'. Thay đổi cài đặt 'runtime library' thành 'multithreaded' thay vì 'dll đa luồng'.
Nếu bạn đang sử dụng bất kỳ thư viện nào khác , bạn có thể cần phải yêu cầu trình liên kết bỏ qua CRT được liên kết động một cách rõ ràng.
Bạn có thể cài đặt lại thời gian chạy C trên máy đích và bạn có thể thực thi sẽ chạy ở đó với thời gian chạy C được liên kết động.
(Xin lỗi, điều đó đã được đề cập).
- 1. Trình biên dịch C nằm trên đĩa cho Visual C++ 2008 Express ở đâu?
- 2. Profiler cho Visual Studio 2008, C++?
- 3. vs 2008 express: đăng ký
- 4. Visual Studio 2008 Express có hỗ trợ t4 không?
- 5. Sử dụng ASP.NET MVC Từ Visual Web Developer Express 2008
- 6. Cửa sổ định nghĩa mã trong Visual C++ 2008 Express là gì?
- 7. Làm cách nào để vô hiệu hóa từ khóa giao diện trên Visual C++ Express 2008?
- 8. Visual Studio 2010 Express C# hạn chế
- 9. Xây dựng 64 bit trên microsoft visual C++ express 2010
- 10. IIS Express chỉ định tệp cấu hình tại biên dịch/runtime & Visual Studio Integration
- 11. Visual C++ Express - Hàng chục vcpkgsrv.exe
- 12. visual C++ 2010 express auto writing brackets
- 13. VC++: KB971090 và chọn Visual C Runtime DLL phụ thuộc
- 14. Lỗi liên kết CUDA - Visual Express 2008 - nvcc gây tử vong do (null) tệp cấu hình
- 15. Phát triển Silverlight trong Visual Studio Express?
- 16. Đâu là .vssettings cho Visual Studio Express?
- 17. Cần phím nóng/nút để nhận xét một khối mã trong Visual Studio 2008 Express
- 18. C# /. NET scripting library
- 19. C++ Graphic Drawing Library
- 20. C# Class Library Localization
- 21. Cách nhận BIDS cho Visual Studio 2008 SP1?
- 22. Giấy phép Visual Studio Express 2010
- 23. Visual Studio 2008 có thể được cài đặt với Visual Studio 2008 cạnh nhau không?
- 24. static vs extern "C"/"C++"
- 25. Cài đặt SQL Server Express 2008 Cài đặt SQL Server Express 2008
- 26. Hiểu Objective-C runtime
- 27. Tại sao System.Web.HttpUtility.UrlEncode cho tên không gian tên không tồn tại trong Visual C# 2008?
- 28. SQL Express 2005/2008 Connections đồng thời
- 29. Tôi có thể xuất thông điệp Trace vào một cửa sổ riêng trong Visual C# 2008 Express không?
- 30. Kiểm thử đơn vị trong Visual C# 2010 Express?
Bạn cần phải đảo ngược không và lưu ý, bây giờ bạn đã không và không. : P – GManNickG
Có rất nhiều lý do tốt để thích liên kết tĩnh. Cá nhân tôi ưu tiên "giữ lại sự tỉnh táo của tôi" khá cao, và điều đó không tương thích với hoops Microsoft yêu cầu bạn phải nhảy qua để phân phối thời gian chạy VC++. – jalf
@ Jalf - Tôi đồng ý đó là sở thích và có sự cân bằng. Tôi đã chỉnh sửa câu trả lời của mình. –