30

Tôi đang cố gắng sử dụng trình biên dịch C++ của Visual Studio Express 2010 mà không cần sử dụng IDE. Tôi tìm thấy cl.exe trong C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin. Tuy nhiên, có một vài khó khăn. Thứ nhất nó đã cho tôi một cảnh báo bật lên khi tôi gõ cl nói rằng 'Chương trình không thể bắt đầu bởi vì mspdb100.dll là mất tích từ máy tính của bạn.'Biên dịch dòng lệnh bằng cl.exe?

Vì vậy, tôi thêm C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE để đường dẫn hệ thống và sau đó thử một lần nữa, nhưng lần này:

lỗi nghiêm trọng C1510: Không thể tải ngôn ngữ tài nguyên clui.dll.

Bất kỳ ý tưởng nào để giải quyết vấn đề này để tôi có thể biên dịch? Ngoài ra làm thế nào tôi sẽ thiết lập đường dẫn vì vậy tôi chỉ có thể gõ 'cl main.cpp' vv, từ bên trong một thư mục giải pháp mà không chứa cl.exe. Hiện tại tôi phải ở trong thư mục bin. Cảm ơn.

+8

VS không cài đặt lối tắt/mục trình đơn cho trình bao cmd có tất cả các cài đặt phù hợp không? – Mat

+1

Có một win32_all_vars.bat hoặc sth bên trong thư mục VS, thực hiện điều đó và thử lại. – Xeo

+0

@Mat: Yea nhưng đó không phải là một giải pháp thanh lịch. –

Trả lời

49

Hãy thử bắt đầu Visual Studio Command Prompt từ

Start-> 
    All Programs -> 
     Microsoft Visual Studio 2010 -> 
      Visual Studio Tools -> 
       Visual Studio Command Prompt 2010 

Ngoài ra, bạn có thể thiết lập môi trường bằng cách chạy này trong một dấu nhắc lệnh:

"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 

(lưu ý: điều này sẽ rời khỏi môi trường của bạn thiết lập sau khi chạy.)

(lưu ý 2: thay đổi x86 như mong muốn. tùy chọn là x86, ia64, amd64, x86_amd64, x86_ia64)

Từ đó bạn có thể chạy cl.exe. Nếu bạn muốn điều này được thực hiện tự động và hoàn tác bất cứ khi nào bạn chạy cl, tạo ra một tập tin thực thi với nội dung này:

@echo off 
%comspec% /c ""c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 && cl.exe %*" 

(các /c nói với dấu nhắc lệnh để kết thúc phiên giao dịch sau khi chạy lệnh này, vì vậy lợi nhuận môi trường của bạn bình thường.)

Từ đó, đặt tên là cl.bat. Đặt điều này trong một thư mục ở đâu đó, và thêm đường dẫn đến thư mục đó để biến môi trường PATH của bạn, đảm bảo nói trước đường dẫn đến cl.exe, do đó cl.bat này được thực thi bất cứ khi nào bạn gõ cl thay vì cl.exe

tôi khuyên bạn chỉ cần đặt cl.bat trong thư mục system32/ của bạn, thư này phải đến trước đường dẫn của cl.exe trên cài đặt mặc định.

Hoặc, bạn có thể thêm nó theo bất kỳ thứ tự nào và luôn nhập cl.bat hoặc đặt tên cho mục đích khác để không bị nhầm lẫn.

4

Chỉ cần sử dụng vcvarsall.bat như jsvk gợi ý:

"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 

Sau đó, sử dụng devenv.exe để xây dựng công cụ của bạn nếu bạn giữ cho mình an toàn từ rất nhiều đầu đau nhức:

devenv solutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [ /projectconfig name ] ] 

Có một nhiều công tắc dòng lệnh khác mà bạn có thể kiểm tra với devenv /?.

4

Tôi đã cài đặt nhiều phiên bản VS; Tôi tạo một tệp .BAT nhỏ cho mỗi phiên bản, được đặt ở đâu đó trong đường dẫn, gọi là "vcvarsall.bat" có liên quan. ví dụ. "vc9.bat" gọi vcvarsall.bat cho VS2008, trong khi "vc10.bat" gọi vcvarsall.bat cho VS2010. Tôi có thể mở một cửa sổ lệnh bình thường như bình thường, gõ "vc9", và mau, cửa sổ lệnh đó đã sẵn sàng để biên dịch vv bằng cách sử dụng VS2008.

+0

Đây là một ý tưởng tuyệt vời, tôi không biết lý do tại sao tôi chưa làm điều này trước đây –

+0

Có thể chúng tôi thấy tập tin batch của bạn? Có lẽ một github gist hoặc code pastei? –

4

Đây là một nhiệm vụ khá đơn giản và eo hẹp về phía trước. Trước hết, thêm đường dẫn trình biên dịch vào đường dẫn hệ thống.:C:\Chương trình Tệp \ Microsoft Visual Studio 10.0 \ VC \ bin; Tiếp theo, mở dấu nhắc lệnh và thay đổi thư mục vào thư mục nguồn của bạn; Sau đó, thực thi tệp vcvars32.bat để thiết lập môi trường để sử dụng vC++ trên x86; Sau này, bạn có thể gõ cl để biên dịch chương trình của bạn

0

Lỗi đó xảy ra khi trình liên kết hết bộ nhớ.
Bạn có thể sử dụng công cụ x64 công cụ Visual studio.

msbuild dòng lệnh:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64 

Hoặc tốt hơn nữa, thêm nó vào các thiết lập của dự án trong .vcxproj.
Để xác định phiên bản 64-bit của trình biên dịch và các công cụ, thêm các yếu tố nhóm tài sản sau đây để hồ sơ dự án Myproject.vcxproj sau khi các yếu tố Microsoft.Cpp.default.props:

<PropertyGroup> 
    <PreferredToolArchitecture>x64</PreferredToolArchitecture> 
</PropertyGroup> 

Các tùy chọn này sẽ làm cho visual studio sử dụng các công cụ dưới thư mục kiến ​​trúc amd64 (theo kiến ​​trúc mục tiêu):
VC \ bin \ amd64
VC \ bin \ amd64_x86
VC \ bin \ amd64_arm

https://msdn.microsoft.com/en-us/library/dd293607.aspx

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