2012-09-19 39 views
5

Tôi muốn chỉ nhận phiên bản được xử lý trước của file.cc. Tôi đã làm g++ -E file.cc, đã nhận:g ++ đầu ra tiền xử lý trước

# 1 "file.cc" 
# 1 "<command-line>" 
# 1 "file.cc" 

Tôi đã làm gì sai?

+1

Cải thiện bài viết của bạn. Có gì trong tệp nguồn của bạn, v.v. –

+4

Tệp nguồn phải trống? – trojanfoe

+1

Chúng tôi không thể biết bạn đã làm gì sai trừ khi bạn nói những gì bạn đã làm và những gì bạn mong đợi sẽ xảy ra. – tenfour

Trả lời

10

Giả rằng tập tin nguồn của bạn có chứa một hàm chính đơn giản:

$ cat file.cc 
int main() { 
    return 0; 
} 

Sau đó, với các lệnh mà bạn cho thấy, sản lượng trông như thế này:

$ g++ -E file.cc 
# 1 "file.cc" 
# 1 "<built-in>" 
# 1 "<command-line>" 
# 1 "file.cc" 

int main() { 
    return 0; 
} 

Kết quả được hiển thị trong câu hỏi xảy ra khi file.cc trống. Lưu ý rằng "trống" có nghĩa là tệp vẫn có thể chứa nhận xét hoặc #ifdef khối có điều kiện đánh giá sai - vì bộ xử lý tiền lọc lọc chúng ra, chúng cũng không xuất hiện ở đầu ra.

4

Nếu bạn không muốn đánh dấu dòng, sử dụng tùy chọn -P:

-P 
    Inhibit generation of linemarkers in the output from the preprocessor. This might 
    be useful when running the preprocessor on something that is not C code, and will 
    be sent to a program which might be confused by the linemarkers. 
Các vấn đề liên quan