2011-11-14 35 views
26

Tôi đang cố gắng để biên dịch một chương trình thử nghiệm CUDA trên Windows 7 thông qua Command Prompt, Tôi lệnh này:Lỗi biên dịch CUDA từ Command Prompt

nvcc test.cu 

Nhưng tất cả tôi nhận được là lỗi này:

nvcc fatal : Cannot find compiler 'cl.exe' in PATH 

Điều gì có thể gây ra lỗi này?

+0

nếu bạn gặp lỗi khác "Không thể tìm thấy corecrt.h" sau khi khắc phục sự cố này, hãy xem https://stackoverflow.com/questions/38290169/cannot-find-corecrt-h- universalcrt-includepath-is-wrong –

Trả lời

27

Bạn sẽ cần phải thêm thư mục chứa "cl.exe" tập tin vào biến môi trường đường dẫn của bạn . Ví dụ:

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin 

Sửa: Ok, bạn vào My Computer -> Properties -> System Advanced Settings -> Environment Variables. Ở đây tìm "PATH" trong danh sách và thêm đường dẫn ở trên (hoặc bất kỳ vị trí nào của cl.exe của bạn).

+0

Ok, nhưng làm cách nào để thêm nó? Tôi đang sử dụng để làm việc trên Linux, vì vậy tôi không sử dụng các cách của cửa sổ bây giờ ... – Imperian

+0

Tốt, nhưng bây giờ tôi có một lỗi khác: 'nvcc gây tử vong: Visual Studio tập tin cấu hình '(null)' không thể tìm thấy để cài đặt tại 'C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ bin /../ ..' ' – Imperian

+1

Nevermind, tôi đã thoát khỏi nó chỉ bằng cách đi qua --machine 32 như một tham số để nvcc – Imperian

3

cl.exe là trình biên dịch C/C++ của Microsoft. Vì vậy, vấn đề là bạn không có cài đặt nơi dòng lệnh có thể tìm thấy nó.

1

nvcc chỉ là giao diện người dùng cho phần cụ thể của chương trình CUDA. Nó phải gọi một trình biên dịch đầy đủ để hoàn thành công việc. Trong trường hợp này nó không thể tìm ra Visual Studio biên dịch 'cl.exe'

Kiểm tra đường dẫn, tài liệu, vv nvcc

0

Tôi thấy rằng đây là câu hỏi cũ nhưng gần đây tôi đã gặp lỗi này trên Visual Studio 2012 khi tôi cố gắng xây dựng dự án CUDA của mình. Dường như tôi đã thay đổi dự án CUDA của tôi thành gói tháng 11 năm 2012, thay đổi nó trở lại v110 mà thông thường nó được mặc định sửa lỗi này.

Trong Visual Studio, nhấp chuột trái vào dự án CUDA, -> properties-> Configuration Properties-> General -> Platform toolset và chọn: Visual Studio 2012 (v110).

Tôi có thể làm cho nó hoạt động với gói tháng 11 năm 2012, nhưng mã CUDA không sử dụng bất kỳ chức năng bổ sung nào của gói đó, vì vậy không cần thiết. (Gói đó chứa các mẫu variadic cho C++ 11.)

10

Giải quyết vấn đề này bằng cách thêm tùy chọn này để nvcc

nvcc x.cu ... -ccbin "D:\Program Files\Microsoft Visual Studio 11.0\VC\bin" 

ví dụ trình biên dịch của tôi là VS2012. và cl.exe nằm trong thư mục này

+0

Bạn có thể làm rõ ý của mình bằng cách "chỉnh sửa vấn đề này" không? – skrrgwasme

+0

xin lỗi tôi nên viết giải quyết không chỉnh sửa: D xin lỗi vì tiếng anh của tôi. –

+0

Thêm thư mục '\ VC \ bin \' vào biến môi trường PATH không hoạt động đối với tôi (Win7). Giải pháp của bạn, tuy nhiên, làm việc tốt! Tôi đã cố gắng để biên dịch một số mã cho MATLAB. Cảm ơn! –

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