2008-12-18 39 views
44

Tôi đã chơi xung quanh với Qt trong vài giờ ngay bây giờ. Tôi thấy rằng qmake tạo ra các tệp dự án Xcode trên Mac OS X thay vì các tệp makefiles tốt của ol. Tôi không muốn khởi chạy Xcode mỗi khi tôi muốn xây dựng "Hello, world".Xây dựng các Dự án Xt Qt Từ Dòng Lệnh

Làm cách nào để tạo qmake tạo ra các tệp makefiles thông thường hoặc, nếu đó là thứ không thể thực hiện trên Mac, làm cách nào để biên dịch các tệp .xcodeproj từ dòng lệnh?

Tôi đã thử xcodebuild -project myProject -alltargets. Tôi nhận được nhiều đầu ra theo sau là Abort trap.

+0

Có vẻ như mục tiêu xấu. Hãy thử có thể chỉ định một mục tiêu đã biết, hoặc không có đối số (sẽ xây dựng đích mặc định) và xem điều gì xảy ra. – Olie

+0

có thể nêu rõ cách bạn đặt biến QMAKESPEC thành macx-g ++ i giống như QMAKESPEC = macx-g ++ ở đầu cuối, nhưng khi tôi viết lệnh qmake, nó không thể tạo một makefile cho tôi – issac

Trả lời

21

Trình cài đặt nhị phân Qt nguồn mở cho OS X từ Trolltech mặc định để tạo tệp .xcodeproj khi bạn chạy qmake. Tôi không sử dụng XCode để chỉnh sửa vì vậy nó là một nỗi đau để mở nó để biên dịch dự án.

Thực hiện việc lập dự án của bạn từ Terminal.app, chỉ cần thiết lập một biến môi trường của QMAKESPEC để MacX-g ++

Nếu bạn muốn chỉ cần biên dịch một dự án nào đó từ nhà ga, đi vào thư mục đó và chạy

qmake -spec macx-g++ 

Khi bạn chạy qmake, điều này sẽ tạo một Makefile mà bạn có thể sử dụng bằng cách chạy make.

+0

có thể nêu rõ cách bạn đặt biến QMAKESPEC thành macx-g ++ tôi đã thích QMAKESPEC = macx-g ++ ở đầu cuối, nhưng khi tôi viết lệnh qmake, nó không thể tạo một makefile cho tôi – issac

+2

@isaac 'export QMAKESPEC = macx-g ++ '(nếu bạn sử dụng sh ít nhất) –

60
$ man xcodebuild 

Vì vậy, một lệnh điển hình có thể là một cái gì đó như:

$ xcodebuild -project myProject.xcodeproj -alltargets 
+6

Tôi phải viết tên đầy đủ của tệp dự án của tôi để làm việc này, ví dụ như myProject.xcodeproj –

0

Nhìn vào phần này của dấu vết trở lại của bạn:

# 2008-12-18 20: 40: 52,333 xcodebuild [1070: 613] [MT] TRÁCH NHIỆM PHÁP LÝ trong /SourceCache/DevToolsBase/DevToolsBase-921/pbxcore/FileTypes/PBXCFBundleWrapperFileType.m:174 # Chi tiết: đường dẫn phải là phần không trống ng, nhưng nó là một chuỗi rỗng # Object: # Phương pháp: -subpathForWrapperPart: ofPath: withExtraFileProperties: # Ðề tài: {name = (null), num = 1}

này ngụ ý rằng một cái gì đó , có thể một trong các biến cấu hình của bạn, để trống khi cần tham chiếu đến tệp. Những gì tôi tự hỏi là nếu có thể bạn có thêm một mục tiêu trong dự án của bạn mà không làm việc, để xây dựng với-alltargets là những gì gây ra vấn đề của bạn.

Tôi đã thử nghiệm xcodebuild mà không có bất kỳ đối số nào về một trong các dự án của tôi ngay bây giờ - nó đã tạo một bản dựng mặc định của dự án của tôi mà không có lỗi. Điều gì sẽ xảy ra nếu bạn thử nó mà không có đối số?

2

Hãy thử cách sau. Nó phải làm việc.

xcodebuild -project myProject.xcodeproj -alltargets 

Tôi đã sử dụng phương pháp này trong hầu hết các dự án của mình.

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