2009-04-14 40 views
17

Tôi muốn thêm ~/bao gồm đường dẫn bao gồm của mình cho tất cả các dự án khi sử dụng Xcode, chẳng hạn như đặt biến môi trường CPLUS_INCLUDE_PATH trong Linux. (Xem here cho câu hỏi liên quan đến Linux.)Cách thêm đường dẫn bao gồm toàn cầu cho xcode

Điều này có thể thực hiện được trong Xcode không? Tôi đã thử đặt biến môi trường ở trên, nhưng nó dường như không hoạt động. (Và nếu có thể, tôi cũng muốn thiết lập các đường dẫn có liên quan, như LIBRARY_PATH và LD_LIBRARY_PATH.)

Trả lời

14

Theo Apple's Docs, bạn có thể để cung cấp mặc định cho bất kỳ cài đặt bản dựng nào bằng cách sử dụng environment variable.

Trong trường hợp này, bạn muốn đặt HEADER_SEARCH_PATHS. Vì một số lý do tôi không hiểu, điều này không hiệu quả. Nó hoạt động tốt cho các cài đặt xây dựng khác (ví dụ: OTHER_CFLAGS), nhưng không hoạt động cho HEADER_SEARCH_PATHS. Bạn có thể xem tên biến cho bất kỳ cài đặt nào bằng cách mở trợ lý nghiên cứu trong cửa sổ cài đặt xây dựng (nút sách ở dưới cùng bên trái.)

Một var hoạt động là USER_HEADER_SEARCH_PATHS, giống như những gì bạn muốn, nhưng chỉ hoạt động cho đường dẫn trong dấu ngoặc kép (không phải trong dấu ngoặc nhọn.)

vì vậy

#include "bar.h" 

sẽ làm việc, nhưng

#include <bar.h> 

thì không.

Việc xây dựng các thiết lập plist tham chiếu từ các bài viết ở trên vào biến môi trường nên kết thúc tìm kiếm một cái gì đó như thế này:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>USER_HEADER_SEARCH_PATHS</key> 
    <string>~/test</string> 
</dict> 
</plist> 

Hy vọng rằng sẽ giúp.

0

Thêm cài đặt xây dựng cho dự án Xcode của bạn HEADER_SEARCH_PATHS. Cài đặt này lấy danh sách đường dẫn được phân cách bằng dấu cách và nếu đường dẫn kết thúc bằng một ngôi sao đôi (**), nó sẽ tìm kiếm thư mục con theo cách đệ quy. Vì vậy, để trả lời các câu ví dụ của bạn, thiết lập HEADER_SEARCH_PATHS tới:

~/include 

Nếu bạn đã có một số con đường để bao gồm, bạn sẽ đặt nó vào một cái gì đó như:

~/include ~/my_other_includes/** /usr/local/special_frameworks/** 
+0

Tôi muốn có một thiết lập * * toàn cầu, vì vậy mà tôi không cần phải thêm đường dẫn tương tự cho tất cả các dự án Xcode. –

+1

Ok, bạn đã không thực sự nói rằng ban đầu. Như Jesse đã nói, bạn cũng có thể thiết lập các cài đặt xây dựng trong môi trường của mình và tôi đoán đó là cách làm việc cho bạn. –

-3

Cài đặt bản dựng không phải là biến môi trường và biến môi trường không xây dựng cài đặt. Việc đặt biến môi trường sẽ không ảnh hưởng đến việc xây dựng Xcode.

USER_HEADER_SEARCH_PATHS là cài đặt xây dựng và đưa danh sách đường dẫn vào đó sẽ đạt được những gì bạn muốn. Nếu bạn đặt giá trị trong thanh tra của mục tiêu, nó sẽ có hiệu lực chỉ cho mục tiêu đó (và chỉ cho Cấu hình Xây dựng bạn chỉ định). Nếu bạn đặt nó trong thanh tra dự án, nó sẽ có hiệu lực trong tất cả các mục tiêu trong dự án, trừ khi một mục tiêu ghi đè nó với cài đặt riêng của nó.

Đối với đường dẫn cụ thể cho máy của bạn, có thể bạn nên xác định Cây nguồn trong Tùy chọn Xcode, chẳng hạn như LOCAL_INCLUDE = ~/include. Sau đó xác định USER_HEADER_SEARCH_PATHS = $(LOCAL_INCLUDE) trong dự án. Bằng cách này, những người khác có thể mở dự án của bạn và xây dựng nó bằng cách đặt Cây Nguồn của họ đến vị trí cụ thể của địa phương bao gồm trên máy của họ, mà không phải thay đổi tệp dự án.

+1

Đặt biến môi trường * có * ảnh hưởng đến cài đặt xây dựng. Nó khá rõ ràng nói như vậy trong tài liệu của Apple, và nó hoạt động. –

+1

Xác nhận của bạn không đồng nghĩa với cách sử dụng thực tế. -1 để đoán. – ptoinson

0

Chỉ cần chọn tệp .c hoặc .m trong "Nhóm & Tab tệp" và chọn "nhận thông tin" qua RMB, sau đó trong "xây dựng", bạn có thể thêm các Cờ biên dịch bổ sung như -I để thêm đường tìm kiếm.

1

Đối với bất kỳ của bạn darlings may mắn đang cố gắng để đạt được này, hoặc bất kỳ Hack khác của ~/.MacOSX/environment.plist, aka biến môi trường toàn cầu trong này thế giới hậu núi Lion, hãy kiểm tra EnvPane - An OS X preference pane for environment variables

EnvPane là ngăn tùy chọn dành cho Mac OS X 10.8 (Mountain Lion) cho phép bạn đặt biến môi trường cho tất cả các chương trình trong cả phiên đồ họa và đầu cuối. Nó không chỉ phục hồi hỗ trợ cho ~/.MacOSX/environment.plist trong Mountain Lion, nó cũng xuất bản các thay đổi của bạn lên môi trường ngay lập tức mà không cần đăng xuất và đăng nhập lại. Nó hoạt động ngay cả khi các thay đổi được thực hiện bằng cách chỉnh sửa thủ công ~/.MacOSX/environment.plist, không chỉ thay đổi được thực hiện thông qua các cửa sổ ưu đãi.

enter image description here

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