2012-11-11 31 views
8

Trong khi sử dụng tùy chọn --save-temps để lưu các tệp tạm thời, gcc/clang sẽ xuất ra tệp tạm thời trong cùng thư mục với tệp nhập. Có một tùy chọn để hướng dẫn gcc xuất tệp ra một số thư mục khác không.cách hướng dẫn gcc/clang xuất tệp tạm thời vào một thư mục cụ thể

HOẶC

Khi không sử dụng tùy chọn --save-temps các tập tin tạm thời được tạo ra trong một thư mục mặc định (ví dụ: $ TMPDIR như/tmp) nhưng chúng được xóa khi tập tin đối tượng được tạo ra. Có cách nào để hướng dẫn trình biên dịch giữ các tệp đó thay vì chỉ xóa chúng (tôi nghĩ rằng tùy chọn duy nhất là --save-temps, có vấn đề được nêu ở trên)

+2

-save-temps = cwd –

Trả lời

7

Nếu bạn sử dụng -save-temps=obj các tệp tạm thời đặt trong cùng thư mục với tệp đầu ra, vd

gcc -save-temps=obj -o dir/foo.o foo.c 

sẽ tạo dir/foo.i

này được ghi chép lại trong cuốn hướng dẫn, rõ ràng. Tất cả các tùy chọn được hỗ trợ được liệt kê tại https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html và liên kết đó đến https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html cho -save-temps.

+0

Tôi đang sử dụng phiên bản gcc 4.3.4. Tôi đã thử sử dụng "= obj" nhưng nó cho lỗi "gcc: tùy chọn không được công nhận" của tôi - lưu-temps = obj '". Lệnh tôi đã kích hoạt là "gcc -c -w -ave-temps = obj -ggdb -m32 test_code.c -o 32_test/test_code.o". Bất kỳ gợi ý nào để loại bỏ lỗi này? – RKum

+0

@RupeshKumar, trước GCC 4.5.0 tùy chọn '-save-temps' không chấp nhận một đối số, do đó, hoặc chỉ sử dụng' -save-temps' và các tệp trung gian sẽ nằm trong cùng thư mục với tệp đầu vào, hoặc nâng cấp trình biên dịch của bạn (4.3.4 rất cũ). –

+0

Cảm ơn Jonathan đã trả lời. Tôi không thể nâng cấp trình biên dịch vì nó có thể làm hỏng mọi thứ. Trong makefile, tôi đã sử dụng lệnh mv để chuyển các tệp trung gian sang thư mục mong muốn. – RKum

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