Tôi đang cố gắng 'nhập' codebase C++ hiện có vào dự án XCode iOS của mình.Bắt XCode để bao gồm, biên dịch và liên kết codebase hiện tại (C++) trong XCode 4.3 (.1)
Vấn đề là, xCode sẽ không biên dịch (và do đó không liên kết) mã của tôi. Đây là những gì tôi đã thực hiện cho đến thời điểm này:
- Tệp> Thêm tệp vào "Dự án". Tôi không đánh dấu 'Sao chép tệp' vì đó là một codebase được chia sẻ cho nhiều nền tảng và nhiều bản sao của mã nguồn không phải là một tùy chọn.
- Tôi đã thêm đường dẫn thích hợp vào cài đặt dự án "Đường dẫn tìm kiếm tiêu đề". Bao gồm các tệp tiêu đề hoạt động, tôi có thể #include "stuff.h" từ tệp Mục tiêu-C++ (.mm) của tôi.
Tuy nhiên, tôi không thể tìm thấy bất kỳ cách nào thực sự nói cho XCode biên dịch tệp .cpp?
Một vài điểm:
- Tôi không tìm kiếm một cách để trước biên dịch nó thành một thư viện và liên kết như vậy
- Dự án này là một dự án Objective-C chuẩn iOS. Các mã C++ được gọi từ nó (mà không phải là một vấn đề)
Cập nhật
Tôi đã thêm codebase thư mục để "Compile Nguồn" của mục tiêu. Tôi thực sự phải bấm vào "Thêm khác ..." trong hộp thoại bật lên, vì tôi không thể chọn tham chiếu thư mục để codebase của tôi.
Khi tôi thêm nó, XCode hỏi tôi liệu tôi có muốn "Tạo dự án hệ thống xây dựng bên ngoài" không. Tôi để nó đánh dấu và hai trường có giá trị mặc định "/ usr/bin/make" và "$ (ACTION)". Tuy nhiên, codebase của tôi không được biên dịch trong quá trình xây dựng. Tôi có phải viết Makefile của riêng mình không?
Nếu tôi không chọn "Tạo dự án xây dựng hệ thống bên ngoài", sau đó một tài liệu tham khảo thư mục được tạo ra theo mục tiêu, nhưng không được biên dịch trong xây dựng và một cảnh báo được phát ra:
warning: no rule to process file '$(PROJECT_DIR)/../codebase'
of type folder for architecture i386
Mục tiêu (chỉ có một) được chọn trong Thêm vào mục tiêu. – olafure
Bạn có tệp cpp của mình được liệt kê trong ** Nguồn biên dịch ** không? Nếu bạn không cố gắng thêm chúng? – sch
Chúng tôi đang ở đó :) Nếu tôi thêm một tệp .cpp đơn, nó sẽ được đưa vào bản dựng! Tuy nhiên, nếu tôi chọn toàn bộ thư mục (xem câu hỏi được cập nhật của tôi), không có gì được xây dựng. Tôi không muốn chọn tất cả các tệp .cpp gazillion của mình theo cách thủ công (bao gồm đường dẫn sẽ sai và thêm địa ngục để thêm/xóa tệp theo cách thủ công trong tương lai) – olafure