Với Visual Studio 2015 tôi không còn có thể biên dịch và liên kết chương trình C++ đơn giản bằng các công cụ dòng lệnh.Không thể biên dịch và liên kết chương trình C++ đơn giản với công cụ dòng lệnh Visual Studio 2015
Cân nhắc main.cpp:
#include <stdlib.h>
int main() { return 0; }
Trong phiên bản trước đó (ví dụ Visual Studio 2012) tôi đã có thể biên dịch và liên kết main.cpp dễ dàng:
C:\Users\bkircher\src\test>cl main.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 17.00.61030 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
main.cpp
Microsoft (R) Incremental Linker Version 11.00.61030.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:main.exe
main.obj
Và thực hiện.
Với Visual Studio 2015 tuy nhiên, tôi không còn phải CRT thích hợp bao gồm và đường dẫn thư viện thiết lập:
C:\Users\bkircher\src\test>cl main.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23026 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
main.cpp
main.cpp(1): fatal error C1083: Cannot open include file: 'stdlib.h': No such file or directory
Tôi hiểu rằng Microsoft phân phối thời gian chạy C như là một điều hành Windows thành phần hệ thống mới, Universal CRT.
Như đã trình bày trong Introducing the Universal CRT, tôi nên sử dụng tính MSBuild sau đây để tìm ra con đường thích hợp
$(UniversalCRT_IncludePath)
$(UniversalCRT_LibraryPath_x64)
Mặc dù vậy, làm thế nào để tôi nhận được thư viện phù hợp và bao gồm đường dẫn cho xây dựng các hệ thống khác hơn devenv hoặc MSBuild?
Vì lợi ích của nó:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>set include
INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\wdf\ucrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\shared;C:\Program Files (x86)\Windows Kits\10\include\wdf\um;C:\Program Files (x86)\Windows Kits\10\include\wdf\winrt;
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC>set lib
LIB=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\lib\wdf\ucrt\x64;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\lib\um\x64;C:\Program Files (x86)\Windows Kits\10\lib\wdf\um\x64;
LIBPATH=C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\UnionMetadata;C:\Program Files (x86)\Windows Kits\10\References;C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\1.0.0.0;C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.FoundationContract\1.0.0.0;C:\Program Files (x86)\Windows Kits\10\References\indows.Networking.Connectivity.WwanContract\1.0.0.0;C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;
Cảm ơn bạn đã liên kết và các giải pháp được cung cấp. Phân tích của bạn là chính xác. Tôi đã gỡ bỏ cài đặt Windows SDK và Windows Driver Kit và mọi thứ hoạt động như một nét duyên dáng một lần nữa –
'Hãy cho tôi biết nếu nó đã giúp.' Cảm ơn, nó đã giúp w/o gỡ cài đặt WDK. – RIscRIpt
Cũng lưu ý cách khắc phục được đăng trên trang web của Microsoft được liên kết trong câu trả lời ở trên. Việc ẩn thư mục wdf cũng giải quyết được vấn đề này. – patthoyts