2012-01-12 43 views
6

Bây giờ tôi đang sử dụng Eclipse CDT cho ứng dụng C/C++ của mình, nhưng có vấn đề khi tôi liên kết thư viện bên ngoài của mình, nó không thể nạp đúng vào thời gian chạy. tệp gần tệp nguồn, tôi đã cung cấp đường dẫn thư viện và tên của nó chính xác.C++: Thư viện bên ngoài trong eclipse CDT

thư mục dự án

: (. Cpp file ..)

  1. bao gồm (file .h)
  2. nguồn
  3. lib (libbozorth3.a, LSFMatcher.a)

Tôi muốn liên kết các thư viện tĩnh đó với ứng dụng của tôi, tôi thực hiện theo các bước sau:

  1. project-> properties-> general-> path và symbols-> bao gồm đường dẫn thư mục và thư viện (bozorth3.a, LSFMatcher.a) và thêm đường dẫn thư viện.
  2. và tôi cũng thêm cùng một thư viện trong phần mối liên kết cũng

Khi tôi xây dựng chương trình nó sẽ hiển thị một lỗi không thể tìm thấy -lbozorth3.a không thể tìm thấy -lLSFMatcher.a

Vì vậy, tôi cần các bước chính xác để thêm thư viện bên ngoài vào ứng dụng c/C++.

+0

bạn đã xem xét: http://stackoverflow.com/questions/8370809/how-to-add-a-library-to-eclipse-c-project? – Dyonisos

Trả lời

12

Tôi thường cấu hình

  1. thư viện
  2. các đường dẫn tìm kiếm thư viện (cần thiết cho compiliation)
  3. con đường tìm kiếm thời gian chạy (-rpath Linker tùy chọn)

(xem hình bên dưới và trao đổi đường dẫn trong cờ Linker với đường dẫn bạn đã sử dụng trong đường dẫn tìm kiếm trong thư viện)

Library Search path Linker options for runtime search path

1

bạn nên sử dụng -Wl,-rpath=${workspace_loc}/Liball chứ không phải -Wl,-rpath,${workspace_loc}/Liball.

Cũng trong tùy chọn thư viện -l thêm thư viện như ví dụ. cho libgcc.a chỉ thêm gcc

+0

Đây không phải là câu trả lời đầy đủ. Nó phụ thuộc vào câu trả lời được cung cấp bởi FSaccilotto. Có lẽ bạn nên di chuyển nó vào một bình luận để anh ta có thể sửa bài viết của mình, hoặc bạn nên thêm chi tiết hơn cho bạn để nó là một câu trả lời đầy đủ. – Dzyann

0

Bạn nên chú ý đến nội dung nằm trong dấu ngoặc đơn: Các tùy chọn khác (-Xanh kết nối [tùy chọn]).

Cách để vượt qua các tùy chọn khác nhau. Thay vì sử dụng:

-Wl,-rpath,'${ProjDirPath}/../../system/lib' 

Bạn phải sử dụng:

-rpath '${ProjDirPath}/../../system/lib' 

Đó là, loại bỏ các "-Wl," và thay thế thứ hai "" bằng "" (không gian).

enter image description here

enter image description here

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