2009-07-17 41 views
8

Chúng tôi đang cố gắng sử dụng thư viện MITK với Qt trên Linux.Đặt đường dẫn có giá trị biến môi trường

Thật không may MITK không có chức năng cài đặt và nó cũng phụ thuộc vào ITK và VTK. Vì vậy, chúng tôi kết thúc với các tập tin tiêu đề nằm rải rác trong nhiều thư mục.

Chúng tôi muốn chỉ định danh sách các thư mục cần thêm vào đường dẫn bao gồm trong biến môi trường như sau: INCPATH + = $ MITK_INCLUDE_PATH. Nhưng điều này dường như không hoạt động.

Làm cách nào để chúng tôi có thể đạt được điều này? Có cách nào tốt hơn?

Trả lời

11

Chỉ cần phát hiện ra các giải pháp bản thân mình. Mặc dù tôi đã trao cho Aidos và cjhuitt một câu trả lời cho câu trả lời của họ, giúp tôi đi đúng hướng và tiết kiệm thời gian quý báu cho tôi. Một lời cảm ơn đặc biệt cho liên kết đến tài liệu qmake.

Điểm đầu tiên là tôi nên sửa đổi tệp .pro và không fiddle với các đối số xây dựng mở rộng.

Để có được nội dung của một biến môi trường khi qmake được xử lý ta nên sử dụng cú pháp sau

INCLUDEPATH + = $$ (MITK_INCLUDE_PATH)

Lưu ý rằng để có được nội dung của một biến môi trường khi làm được xử lý ta nên sử dụng cú pháp sau

INCLUDEPATH + = $ (MITK_INCLUDE_PATH)

Nhưng điều này sẽ không có tác dụng tương tự nếu các biến môi trường chứa nhiều đường. Hình thức đầu tiên là sau đó thích hợp hơn.

Đường dẫn trong biến môi trường phải được phân cách bằng dấu cách vì; Không được công nhận.

Nếu đường dẫn chứa dấu cách, hãy đặt dấu ngoặc kép xung quanh nó.Dấu cách xuất hiện giữa các dấu ngoặc kép sẽ được thay thế bằng '\'.

+1

nếu bạn có danh sách các thư mục trong biến môi trường được phân cách bằng dấu ';' , bạn có thể sử dụng một cái gì đó như thế này (không được kiểm tra): INCLUDEPATH + = thay thế ($$ (MITK_INCLUDE_PATH), ";", "") – Florian

+0

Nếu tôi muốn bao gồm một cái gì đó như thế này '$ HOME/x/y/z'? – qed

0

tôi không biết, nhưng có lẽ bạn có thể thử viết như

INCPATH + =% MITK_INCLUDE_PATH%

trong các cửa sổ, nói chung nó là như thế ..

nhưng tôi đã không cố gắng.

+0

Đó là trên linux. – chmike

+0

Trên thực tế nó không hoạt động trên các cửa sổ hoặc (ít nhất nó đã không làm việc cho tôi). –

3

Bạn đã thử thêm:

INCLUDEPATH += <the path to the MITK headers>

trong file .pro của dự án của bạn?

Và có thể bạn cũng sẽ cần chỉnh sửa LIBS và DEPENDPATH.

Xem QMake Manual

+0

Nó hoạt động nếu tôi sao chép qua danh sách các thư mục. Có thể làm tương tự với biến môi trường không? – chmike

3

Tôi nghĩ rằng có một cách sạch hơn để làm điều này, nhưng tôi không thể nhớ. Dù sao, bạn có thể sử dụng các chỉ thị system:

INCLUDEPATH += $$system(echo $MITK_INCLUDE_PATH) 

Bạn cũng có thể muốn thêm nó vào phụ thuộc đường dẫn:

DEPENDPATH += $$system(echo $MITK_INCLUDE_PATH) 
Các vấn đề liên quan