Tôi có tệp tiêu đề mà tôi đang cố đưa vào từ tệp nguồn khác bằng cách sử dụng thư mục pre-processor include
. Tôi đã cố gắng sử dụng cả hai hình thức trích dẫn cũng như hình thức góc-braket, nhưng dường như không làm công việc.Cách đưa tệp vào C và/hoặc C++
Tên tệp là .>"hello.h
và thư mục nơi trình biên dịch tìm kiếm. Tôi đã cố gắng để bao gồm nó như thế này:
#include <.>"hello.h>
#include <.\>"hello.h>
#include <.\>\"hello.h>
#include ".>"hello.h"
#include ".>\"hello.h"
Tôi cũng đã cố gắng khác nhau C và C++ biên dịch - kêu vang , gcc , clang ++ và g ++.
Rõ ràng, không có cách nào ở trên hoạt động hoặc không có câu hỏi nào.
Tôi nghĩ rằng có thể tên không hợp pháp theo tiêu chuẩn. Thật không may, tôi không có thông số kỹ thuật tiêu chuẩn C cũng như C++. Nguồn thông tin có thẩm quyền duy nhất tôi có thể tìm thấy là this MSDN trang về chỉ thị #include
và tài liệu preprocessor GNU C, here. Tài liệu của GNU không nói nhiều, MSDN có các điều khoản sau, tuy nhiên:
Đường dẫn-spec là tên tệp tùy chọn trước bởi một thư mục đặc điểm kỹ thuật. Tên tệp phải đặt tên tệp hiện có. Cú pháp của đường dẫn-spec phụ thuộc vào hệ điều hành mà chương trình được biên dịch .
Tôi tò mò muốn biết các tiêu chuẩn C và C++ nói gì về điều này?
Tôi tìm các quy tắc dành riêng cho hệ điều hành này cho các yêu cầu đặt tên tệp tiêu đề C và C++? Tôi đặc biệt quan tâm đến OS X, Linux và FreeBSD.
Tại sao thoát <
và/hoặc "
ký tự không hoạt động?
Làm cách nào để bao gồm tệp của tôi?
Bạn đang biên dịch bằng cách sử dụng 'clang file_one.c file_two.c'? ... có thể dễ dàng là vấn đề. Không chắc chắn những gì bạn đang cố gắng đạt được ở đây. –
Tôi biết nó không trả lời câu hỏi, nhưng tại sao không .... đổi tên tập tin? Đó là tên khủng khiếp anyway. – eli
@JacobPollack: Tôi đang biên dịch thành 'clang ++ -Wall -pedantic -I. -std = C++ 11 -stdlib = libC++ -o hello./hello.cc' trong đó 'hello.cc' là một tập tin mà tôi cần bao gồm'.> "hello.h' từ. –