2010-01-18 27 views
23

Làm cách nào để chuyển đổi các tệp vcproj hiện có thành tệp dự án mà phần bổ sung QT cho Visual Studio nhận ra và xử lý như các dự án Qt hợp lệ?Làm thế nào để chuyển đổi dự án win32 (VC++ vcproj) thông thường thành dự án Qt?

Tôi có nên cắn viên đạn và tạo các dự án mới để thay thế những cái cũ và sau đó thêm mã hiện có?

Tôi đang sử dụng QT 4.6 và VS 2008 với Qt Add-in 1.1.2. Tệp vcproj gốc có NOT được tạo bằng QMake.

+0

Tôi cũng đang tìm giải pháp tương tự. – sivabudh

+1

@Morten, tôi vừa gửi yêu cầu tính năng tới Nokia (Tôi có hỗ trợ chuẩn). Tôi sẽ đăng thông tin cập nhật tại đây khi tôi nhận được câu trả lời từ họ. – sivabudh

+0

Tuyệt vời ShaChris23. –

Trả lời

25

Sử dụng Visual Studio 2010+ bây giờ có thể chuyển đổi dự án thành dự án Qt Addin, sử dụng tính năng "Chuyển đổi dự án thành dự án bổ trợ Qt" của Addt Qt.

Các bước sau đây là từ work around trong lỗi QTVSADDINBUG-27. Điều này đã được thử nghiệm với Visual Studio 2010, nhưng nên làm việc tương tự với các phiên bản mới:

  1. Nhấp chuột phải vào dự án của bạn trong "Solution Explorer", bấm vào "Dự án Unload"
  2. Nhấp chuột phải vào dự án của bạn trong "Giải pháp Trình khám phá ", nhấp vào" Chỉnh sửa .vcxproj "
  3. Thêm dòng <Keyword>Qt4VSv1.0</Keyword> giữa các thẻ <PropertyGroup Label="Globals"></PropertyGroup>.
  4. Nhấp chuột phải vào dự án của bạn trong "Solution Explorer", bấm vào "Dự án Nạp lại"
  5. Nhấp chuột phải vào dự án của bạn trong "Solution Explorer", bấm vào "Chuyển đổi dự án để dự án Add-in Qt"

Nếu bạn có các tệp tiêu đề trong dự án của mình, bạn sẽ phải làm theo hướng dẫn trong answer này để kích hoạt tạo ra các tệp moc_ * trong thư mục "Tệp đã tạo".

Đối với các phiên bản của Visual Studio cũ hơn 2010, hãy xem điều này work around.

+1

Cảm ơn vì điều đó. Tôi nhìn khắp mọi nơi, và đây là lời bình luận duy nhất nói cách thực sự làm điều đó. Ngoại trừ sau khi tôi đã làm những gì bạn nói, tôi đã phải loại bỏ tất cả các tệp cpp/h khỏi dự án và thêm lại chúng. Sau khi thực hiện điều đó, nó đã tạo thư mục Generated Files với các tệp moc. Cảm ơn. – bmahf

+0

@bmahf vui mừng khi biết rằng nó phù hợp với bạn. Liên quan đến việc tạo ra các tập tin moc bạn đã thử [answer] (http://stackoverflow.com/a/6642863/262789) được liên kết trong đoạn cuối của câu trả lời của tôi. Nó chứa các hướng dẫn về kích hoạt tạo ra các tệp moc_ *. – Benjamin

+0

Không hoạt động cho VS2013. – Bim

8

Đây là phản hồi từ kỹ sư hỗ trợ Nokia, tên loại bỏ để bảo vệ sự riêng tư:

Hi,

Cảm ơn đã gợi ý. Tôi đã chuyển cho các nhà phát triển của chúng tôi, những người sẽ xem xét triển khai bản phát hành trong tương lai . Bạn có thể theo dõi nó bằng cách sử liên kết sau:

https://bugreports.qt.io/browse/QTVSADDINBUG-27

Kính trọng, Hỗ trợ Kỹ sư, Qt Khung phát triển, Nokia >

gốc câu hỏi

Chúng tôi có khá vài dự án vcproj cũ mà chúng tôi muốn thêm Qt vào nó. Hiện tại, chúng tôi không có cách dễ dàng để chuyển đổi các tệp vcproj cũ này thành vcproj có hỗ trợ Qt.

Tôi có ý nghĩa gì khi bật Qt?

Trên vcproj không hỗ trợ Qt, khi tôi nhấp chuột phải vào tên dự án trong Solution Explorer, tất cả các tùy chọn liên quan đến Qt đều chuyển sang màu xám.

Sẽ rất hữu ích nếu Nokia thêm khả năng này vào VSTD Add-in.

Nghiên cứu sinh lưu lượng truy cập, nếu bạn muốn xem tính năng này do Nokia triển khai, vui lòng bỏ phiếu cho liên kết ở trên! =)

+2

Hiện có giải pháp cho vấn đề này, đề cập đến cách giải quyết trong một [nhận xét] (https://bugreports.qt-project.org/browse/QTVSADDINBUG-27?focusedCommentId=165769&page=com.atlassian.jira.plugin.system. issuetabpanels: comment-tabpanel # comment-165769) trong báo cáo lỗi hoặc xem câu trả lời của tôi bên dưới. – Benjamin

1

Câu trả lời khác từ kỹ sư hỗ trợ Qt; Tôi nghĩ rằng hình ảnh đầu tiên hữu ích vì tôi không biết điều đó trước đây:

tôi nghĩ đây là một sự hiểu lầm thực sự. Nếu bạn có một dự án Qt được tạo bằng Trình bổ sung, thì bạn có thể thay đổi dự án này thành qmake dự án Qt được tạo - và ngược lại; Nếu bạn có tệp .vcproj đã được tạo bằng cách thực hiện qmake -tp vc, sau đó bạn có thể chuyển đổi thành dự án bổ sung Qt bổ sung .

Không có chức năng để chuyển đổi một dự án win32 thường xuyên thành một kích hoạt dự án Qt , vì vậy đề nghị tạo vẫn còn hiệu lực, xem:

https://bugreports.qt.io/browse/QTVSADDINBUG-27 

tôi có thể nhìn thấy từ lịch sử của báo cáo này rằng nó đã được đóng lại và mở lại một lần nữa, vì vậy tôi giả sử có một sự hiểu lầm về những gì bạn đang tìm kiếm ngay từ đầu.

Nếu bạn tạo một .pro cho bạn dự sử dụng qmake, sau đó bạn sẽ có thể để tạo ra một tập tin .vcproj sử dụng 'qmake vc -tp' trên tập tin đó .pro. Hướng dẫn qmake có sẵn ở đây:

http://doc.qt.io/qt-5/qmake-manual.html 

Tôi hy vọng điều này sẽ giúp.

Kính trọng,

-

Hỗ trợ Kỹ sư, phát triển Qt Frameworks, Nokia

1

Chuyển đổi một dự án VC thường xuyên cho một dự án QT nên dễ dàng hơn và được thông báo lỗi hiển thị bởi Qt plug-in khi cố gắng thêm một lớp Qt vào một dự án phi QT là cực kỳ vô ích, đặc biệt khi xem xét sự khác biệt thực sự giữa một Qt .vcprojfile và một không Qt là tối thiểu. Nó thường là trường hợp mà bạn có mã di sản hiện tại được xây dựng vào thư viện và của Dll. Trong quá trình di chuyển sang Qt, bạn có thể thêm một lớp Qt vào một mô-đun hiện có trước đó là một dự án không phải Qt. Nếu mô-đun có ít tệp nguồn, bạn có thể thấy dễ dàng hơn khi tạo lại dự án dưới dạng dự án Qt. Nếu nó có hàng trăm tệp nguồn hoặc phức tạp theo những cách khác thì thường dễ dàng hơn khi chỉ cần chỉnh sửa tệp .vcproj. Bằng cách so sánh một .vcproj thường xuyên với một Qt một nó rất dễ dàng để xem những gì sự khác biệt là:

  1. dự án A Qt có một từ khóa = "Qt4VS1.0" đường ngay trước TargetFrameWorkVersion gần phía trên cùng của tập tin.
  2. Ở dưới cùng của tập tin bạn cần phải thêm Globals yêu cầu (trong đặc biệt QtVersion.Win32)
  3. Bạn sẽ cần phải thêm vị trí của các tập tin tiêu đề Qt đến bao gồm đường dẫn (cho tất cả các cấu hình xây dựng) . Bạn có thể thực hiện việc này sau qua giao diện người dùng studio trực quan
  4. Để có exe hoặc dll, bạn cũng sẽ cần thêm các vị trí thư viện Qt và tệp thư viện vào tùy chọn trình liên kết.

Bạn thực sự chỉ cần thực hiện 1 và 2 trong trình chỉnh sửa văn bản và sau đó bạn có thể tải lại dự án trong Visual Studio.

Sau khi thiết lập bao gồm đường dẫn và thư viện, bạn sẽ có thể tạo dự án như bình thường. Tiếp theo, bạn có thể thêm một lớp Qt mới hoặc chuyển đổi một lớp hiện có thành một lớp Qt. Để làm điều thứ hai đầu tiên loại bỏ các tệp nguồn cho lớp hiện có từ dự án nếu không thì thuật sĩ thêm lớp Qt có khả năng sẽ khiếu nại.

Các bước trên dành cho người dùng có kinh nghiệm và bạn nên luôn sao lưu các dự án hiện có. Các tệp pvcproj bfore chỉnh sửa bằng tay. Lỗi đơn giản ở đây có thể khiến tệp không sử dụng được.

1

Tôi sử dụng Qt VS Tools thay vì bổ sung Qt VS.

Hướng dẫn

Trong tập tin .vcxproj, tạo các thay đổi sau:

Thêm <Keyword>Qt4VSv1.0</Keyword> vào <Project><PropertyGroup Label="Globals"> (phù hợp với Benjamin's answer).

Thêm các yếu tố sau đây vào <Project> (phần tử gốc):

<ProjectExtensions> 
    <VisualStudio> 
     <UserProperties MocDir=".\GeneratedFiles\$(ConfigurationName)" UicDir=".\GeneratedFiles" RccDir=".\GeneratedFiles" lupdateOptions="" lupdateOnBuild="0" lreleaseOptions="" Qt5Version_x0020_x64="5.6-msvc2013_64" MocOptions="" /> 
    </VisualStudio> 
    </ProjectExtensions> 

Lưu ý rằng giá trị của thuộc tính Qt5Version_x0020_x64 phải phù hợp với tên của một phiên bản Qt trong Qt VS Tools. Bạn có thể đặt một giá trị tùy ý và sau đó sửa nó trong Cài đặt Dự án Qt trong Visual Studio.

Thiết lập của tôi

  • Visual Studio 2013
  • Qt VS Tools 2.0.0 Beta (rõ ràng là một thương hiệu riêng của Qt VS Add-in)
  • Qt 5.6 msvc2013_64

Ghi chú

Khi tôi theo dõi Benjamin's answer và cố gắng "Chuyển đổi dự án thành dự án Công cụ Qt VS", Visu al Studio bị kẹt.

Chức năng cụ thể Qt duy nhất mà tôi đã thử với dự án đang xuất a.tập tin pri.

Tôi đã thiết kế ngược các sửa đổi cần thiết từ dự án VS mới được tạo bằng cách sử dụng mẫu Ứng dụng GUI Qt.

+0

Cảm ơn rất nhiều. Đó là hạt mà các plugin không làm điều này cho bạn. – CaptRespect

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