Làm cách nào để thêm đường dẫn bao gồm mặc định cho GCC trong Linux?


288

Tôi muốn gcc bao gồm các tệp $HOME/includengoài các thư mục bao gồm thông thường, nhưng dường như không có sự tương tự $LD_LIBRARY_PATH.

Tôi biết tôi chỉ có thể thêm thư mục bao gồm trong dòng lệnh khi biên dịch (hoặc trong tệp thực hiện), nhưng tôi thực sự muốn một cách tiếp cận phổ quát ở đây, như trong trường hợp thư viện.


3
Dưới đây là liên kết đến hướng dẫn sử dụng GCC 4.8.1 trong đó các biến môi trường C_INCLUDE_PATH và CPLUS_INCLUDE_PATH được ghi lại.
mloskot

Câu trả lời:


392

Hãy thử cài đặt C_INCLUDE_PATH(đối với tệp tiêu đề C) hoặc CPLUS_INCLUDE_PATH(đối với tệp tiêu đề C ++).

Như Ciro đã đề cập, CPATHsẽ đặt đường dẫn cho cả C và C ++ (và bất kỳ ngôn ngữ nào khác).

Thêm chi tiết trong tài liệu của GCC .


53

Tạo một bí danh cho gcc với yêu thích của bạn bao gồm.

alias mygcc='gcc -I /whatever/'

12
Tôi nghĩ không nên có không gian sau-I
Iulius Curt

10
chỉ là một thói quen bỏ qua không gian, giống như bạn gõ -l<libnam>để liên kết Chỉ cần lưu ý rằng việc tạo bí danh là một giải pháp rất kém, thực sự bạn sẽ xây dựng một danh sách 'yêu thích bao gồm' và thêm chúng vào tệp tạo tệp của bạn.
h4unt3r

9
"Giải pháp thay thế thứ hai với thư viện là một đối số riêng biệt chỉ dành cho tuân thủ POSIX và không được khuyến nghị." , theo hướng dẫn của GCC.
Jori

Không phải là một ý tưởng tốt. Điều này là không thể tổng hợp (nếu bạn muốn một thư mục khác thì sao? Nếu bạn muốn một số công tắc GCC khác) và có thể nhầm lẫn các tập lệnh hoặc công cụ tự động khác nhau tạo ra các giả định về gcc.
einpoklum

8

Một tệp đặc tả gcc có thể thực hiện công việc, tuy nhiên tất cả người dùng trên máy sẽ bị ảnh hưởng.

Xem tại đây


6

chỉ là một lưu ý: CPLUS_INCLUDE_PATHC_INCLUDE_PATHkhông tương đương với LD_LIBRARY_PATH. LD_LIBRARY_PATHphục vụ ld(trình liên kết động khi chạy) trong khi tương đương với hai trình duyệt trước phục vụ trình biên dịch C / C ++ của bạn với vị trí của các thư viện là LIBRARY_PATH.

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.