Các tệp tiêu đề cho GCC nằm ở đâu?


10

Tôi muốn thêm thủ công một số tệp tiêu đề như math.hgraphic.hcho gccnhưng không biết đặt chúng ở đâu.

Câu trả lời:


13

Đầu tiên hãy xem trong /usr/includehoặc /usr/local/include.

Nếu bạn không tìm thấy gì ở đó, hãy thử:

`gcc -print-prog-name=cc1plus` -v

Lệnh này hỏi gcc bộ tiền xử lý C ++ nào nó đang sử dụng, và sau đó hỏi bộ tiền xử lý đó nơi nó tìm kiếm bao gồm.

Bạn sẽ nhận được một câu trả lời đáng tin cậy cho thiết lập cụ thể của bạn.

Tương tự như vậy, đối với bộ tiền xử lý C:

`gcc -print-prog-name=cc1` -v

6

Nếu bạn chỉ muốn biết nơi tập tin được đặt, chỉ cần sử dụng lệnh định vị :

locate -b '\math.h'
locate -b '\graphics.h'

Có thể bạn có thêm để cập nhật cơ sở dữ liệu của mình trước đây:

sudo updatedb

Đó là cách tôi đang tìm kiếm vị trí tiêu đề của mình. Nó nhanh hơn nhiều so với sử dụng lệnh find .


math.hnên đã có mặt Ví dụ:/usr/include/c++/7.3.0/math.h
Knud Larsen

Normaly bạn chỉ cần bao gồm lib với tên gcc.c -o name -lm
abu_bua

Làm thế nào để dấu gạch chéo ngược hành động để ngăn khớp bởi các tệp có các ký tự đứng trước trong tên cơ sở của chúng? Chuỗi \math.hnên đánh giá math.h, nhưng tôi thấy rằng \math.htránh các tệp phù hợp như tgmath.hquadmath.h.
dùng001

1
TỪ 'man location': Để tìm kiếm một tệp có tên chính xác là NAME (không phải * NAME *), hãy sử dụng định vị -b '\ NAME' Bởi vì \ là một ký tự toàn cầu, điều này vô hiệu hóa sự thay thế ngầm định của NAME bởi * NAME *.
abu_bua

Cảm ơn. Tôi đã kiểm tra man locate, nhưng tôi đoán tôi có một phiên bản khác của locate(1)trang man (không có một phiên bản nào \ ).
dùng001
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.