Câu hỏi đơn giản hy vọng. Tôi đang cố gắng để tìm hiểu cơ bản Objective-C biên dịch từ dòng lệnh, với clang. Tôi hiểu rằng Xcode là một giải pháp tốt hơn cho các dự án phức tạp và tôi dự định chuyển sang sớm, nhưng cá nhân tôi cảm thấy tôi hiểu ngôn ngữ tốt hơn nếu tôi có thể biên dịch thủ công trong thiết bị đầu cuối và các dự án lập trình giới thiệu nhỏ. một rắc rối để biên dịch trong một thiết bị đầu cuối hơn là phải bắt đầu một dự án mới.Biên dịch nhiều tệp mục tiêu-C trên dòng lệnh với clang
Vì vậy, câu hỏi đặt ra là: làm cách nào để tôi biên dịch một chương trình Mục tiêu-C bao gồm nhiều tệp (từ dòng lệnh)? (Tôi đang cố gắng thực hiện chương trình phân số từ chương 7 của sách giáo khoa của Kochan, với tệp main.m và Fraction.m mà cả tệp #import "Fraction.h" và tệp Fraction.h nhập khẩu khung Nền tảng.) để biên soạn một tập tin duy nhất tôi sử dụng một cái gì đó giống như
clang -fobjc-arc main.m -o prog1
Nhưng nếu tôi gõ đó và tôi muốn bao gồm các file khác hơn main.m trong dự án, tôi nhận lỗi bao gồm:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Nếu tôi hãy thử thêm các tệp bổ sung vào lệnh dưới dạng đối số, như
clang -fobjc-arc main.m Fraction.h Fraction.m -o prog1
sau đó tôi nhận được
clang: error: cannot specify -o when generating multiple output files
Và nếu tôi sau đó loại bỏ lập luận -o như
clang -fobjc-arc main.m Fraction.h Fraction.m
sau đó tôi nhận được một đống khổng lồ lỗi tất cả đề cập đến khuôn khổ nền tảng, cuối cùng kết thúc bằng "gây tử vong lỗi: quá nhiều lỗi phát ra, dừng ngay bây giờ ".
Làm cách nào để làm điều này và làm cho nó hoạt động? Hoặc tôi cần phải chỉ cần hút nó lên và sử dụng Xcode ngay sau khi nhiều hơn một tập tin có liên quan?
Một lỗi là bạn chỉ định tệp bao gồm "Fraction.h" làm đối số cho trình biên dịch. –
Ah! Cảm ơn. Đó là nó: nó cần thiết để chỉ là các tập tin .m và không phải là .h. –