Tôi hiện đang cố gắng để có được một chương trình biên dịch trên một hệ thống mà tôi không có quyền kiểm soát.Ghi đè đường dẫn tìm kiếm tiêu đề mặc định
Vấn đề mà tôi đang gặp là các thư mục bao gồm trông như thế này:
/usr/include:
gmpxx.h gmp.h
/usr/local/include:
gmp.h
Trong tập tin cpp của tôi, tôi sử dụng
#include <gmpxx.h>
và điều này tìm thấy tập tin chính xác trong /usr/include
, tuy nhiên khi gmpxx.h bao gồm gmp.h, nó kéo nó từ /usr/local/include
, phá vỡ cấu trúc.
Ngay bây giờ, tôi thấy 3 giải pháp rất xấu xí cho vấn đề
Trong tập tin cpp của tôi, thêm
#include </usr/include/gmp.h>
Có một tuyệt đối bao gồm đường dẫn là khá xấu xí và không cầm tay, và tôi nghĩ rằng điều này loại điều nên thuộc về Makefile thay vì nguồn.thêm
-nostdinc
cờ để makefile của tôi, và chỉ định đường dẫn bao gồm bằng taytạo liên kết tượng trưng địa phương để các thư viện mà tôi thực sự muốn, và sau đó làm địa phương bao gồm (
#include "gmp.h"
)
Có giải pháp nào tốt hơn mà tôi bị thiếu không?
bạn có được phép sửa đổi gmpxx.h không? –
Tôi không phải là điều duy nhất tôi có thể thay đổi là các tệp cục bộ (cpp, makefile) – cobbal
# 2 có nhiều ý nghĩa. Makefile hiển thị cách xây dựng tệp. Hai người khác dường như bị hack. –