2009-12-18 45 views
11

Tôi đang cố gắng chuyển một chương trình cũ mà tôi đã viết cho lớp từ KDev trong Ubuntu sang Windows Visual Studio 2008 bằng Cygwin như một bài tập học cá nhân. Tôi có đường dẫn bao gồm được cấu hình để bao gồm C:\cygwin\usr\include nhưng nó không đọc tệp .h đúng cách.Cygwin trong Visual Studio

Cụ thể là tôi rất tò mò về cách thức người dùng sẽ sử dụng chức năng unix sockets.h trong môi trường Visual Studio bằng Cygwin. Có ai từng làm việc này hay có cách dễ dàng hơn để làm việc này không?

+0

Chào mừng bạn đến với Stack Overflow. Đầu tiên, làm thế nào * không * nó đọc các tiêu đề, nếu không đúng cách? Xin hãy chính xác hơn. Thứ hai, làm thế nào để sử dụng ổ cắm không có gì để làm với vấn đề đầu tiên, về cách để có được tiêu đề đọc đúng ở tất cả. Vui lòng xem xét chuyển đoạn thứ hai của bạn sang một câu hỏi mới. Bạn sẽ nhận được câu trả lời tốt hơn cho cả hai cách đó (cộng thêm nhiều cơ hội hơn cho các điểm danh tiếng). –

+0

Tôi không chắc chắn những gì bạn đang cố gắng làm sẽ hoạt động. Các tiêu đề và thư viện Cygwin được hướng tới việc biên dịch với gcc thay vì MSVC. – ZoogieZork

Trả lời

8

Có một số cách để thực hiện điều này có thể được thực hiện để hoạt động, tùy thuộc vào mục tiêu chính xác của bạn. Cách đơn giản nhất có lẽ là chỉ để tạo ra một dự án Visual Studio "makefile" mà bắn ra một lệnh xây dựng tùy chỉnh để chạy một makefile bạn đã xây dựng. Nhưng điều đó giúp bạn tránh xa rất nhiều lợi ích tốt đẹp của Visual Studio như một IDE, vì vậy tôi đoán đó không thực sự là những gì bạn đang theo dõi.

Nếu bạn muốn có một giải pháp tích hợp đầy đủ hơn, bạn sẽ cần phải làm hai việc. Trước hết, bạn sẽ cần phải thay đổi tất cả các đường dẫn bao gồm/thư viện của bạn để tránh những con đường của Microsoft và đi theo sau những con Cygwin. Bạn có thể làm điều này bằng cách chọn "Tools-> Options" từ trình đơn, sau đó chọn "Projects and Solutions-> VC++ Directories" từ cây ở phía bên tay trái của cửa sổ xuất hiện. Bạn sẽ có các tùy chọn để thay đổi thư mục tìm kiếm cho các tập tin thực thi, tiêu đề, thư viện, v.v. Cho những gì bạn đang cố gắng làm, tôi khuyên bạn nên xóa mọi thứ và chỉ thêm vào các thư mục Cygwin.

Thứ hai, bạn sẽ phải yêu cầu Visual Studio sử dụng trình biên dịch gcc/g ++. Đây là một chút phức tạp hơn. VS hỗ trợ tùy chỉnh xây dựng các quy tắc cho các loại tập tin tùy chỉnh ... nhưng có vẻ như có C + + hardwired trong cho trình biên dịch của Microsoft. Tôi không thực sự biết một cách tuyệt vời xung quanh đó ngoại trừ việc sử dụng phần mở rộng tập tin tùy chỉnh của riêng bạn. Bạn có thể thử các phần mở rộng unix chuẩn của các tệp .c (C) và .cc (C++), nhưng tôi nghi ngờ Visual Studio sẽ tự động nhận các tệp đó. Bạn có thể phải đi với một cái gì đó hoàn toàn nước ngoài.

Nếu bạn nhấp chuột phải vào dự án của bạn trong Solution Explorer và chọn "Quy tắc xây dựng tùy chỉnh", bạn sẽ có giao diện cho phép bạn tạo quy tắc xây dựng tùy chỉnh cho phần mở rộng tệp bạn đã chọn. Giao diện tương đối đơn giản từ đó.

Điều này có thể không giúp bạn có được chính xác những gì bạn muốn, nhưng có thể là gần như bạn sắp có được với Visual Studio.

+0

Các tiện ích mở rộng tùy chỉnh và quy tắc xây dựng hoạt động sau một chút chỉnh sửa, tôi chưa từng làm việc với các quy tắc xây dựng tùy chỉnh trước đó nên tôi thậm chí không nghĩ về điều đó. Nó không phải là một giải pháp hoàn hảo và nó không có nghĩa là một cách hiệu quả để làm việc, nhưng điều này được dự định nhiều hơn như một kinh nghiệm học tập để kiểm tra giới hạn và khám phá những điều mới hơn bất cứ điều gì thực tế. – WarrenB

4

Nói đơn giản, không làm điều đó. Nó sẽ chỉ lãng phí thời gian. Tôi đã thử nó nhiều lần, nhưng luôn thất bại. Chủ yếu, tôi đã thất vọng bởi nhiều lỗi liên kết và cũng không thể sử dụng VS làm trình gỡ lỗi.

Bạn có thể sử dụng Visual Studio để chỉnh sửa và duyệt mã nguồn. Nó là tốt đẹp bởi vì VS cung cấp các tính năng intellisense C/C++ tốt nhất (ví dụ: Tự động hoàn thành, nhanh chóng đi đến định nghĩa/khai báo). Tuy nhiên, rất khó để sử dụng chuỗi công cụ Cygwin với Visual Studio 2008. Visual Studio 2008 không được thiết kế để hoạt động với các chuỗi công cụ khác. Cụ thể, bạn cần thay đổi (1) tiêu đề, (2) thư viện, (3) trình biên dịch và (4) trình liên kết. Tuy nhiên, nó thường rất khó, hoặc bạn cần phải giao dịch với các tính năng tốt đẹp của Visual Studio. Tính năng mạnh nhất của Visual Studio là khả năng gỡ lỗi của nó như môi trường gỡ lỗi tích hợp đầy đủ và cửa sổ đồng hồ rất dễ dàng (ví dụ: bạn có thể xem phần tử của STL vectơ trực tiếp trong cửa sổ đồng hồ). Tuy nhiên, bạn không thể làm điều này nếu bạn sẽ thay đổi chuỗi công cụ cơ bản (mặc dù tôi rất nghi ngờ nó thậm chí có thể xây dựng một cách an toàn với Visual Studio và chuỗi công cụ Cygwin).

Thật không may, hiện tại Visual Studio 2008 không dành cho Cygwin/MinGW.