2014-07-12 22 views
7

Tôi đang sử dụng IDE <XZY> để biên dịch chương trình của mình và gặp sự cố khi nhập/tích hợp một thư viện cụ thể với nó.Sự cố khi nhập thư viện vào dự án C++ của tôi, cách khắc phục sự cố này?

tôi nhận được thông báo lỗi như

fatal error: 3rdPartyLib.h: No such file or directory 

cho một

#include "3rdPartyLib.h" 

tuyên bố

ld.exe: cannot find `lib3rdParty.a` 

để xác định

3rdParty 
.210

trong thư viện bổ sung

Ít nhất tôi có một số thông báo lỗi như

undefined reference to `lib3rdParty::foo()' 

tôi có thể làm gì để khắc phục điều này?

Trả lời

9

Đó là một quan niệm sai lầm phổ biến, mà IDE hiện tại được sử dụng, chịu trách nhiệm nhận các lỗi như được nêu trong câu hỏi.
Xem ví dụ

Vấn đề là hầu như không bao giờ liên quan đến IDE đang được sử dụng.
Trong hầu hết các trường hợp, giải pháp sôi xuống, để cung cấp trình biên dịch/trình liên kết của chuỗi công cụ thực tế với đường dẫn thích hợp để tìm kiếm các tiêu đề được bao gồm, được liên kết với các thư viện.

Một trong những câu trả lời được áp dụng chủ yếu cho các vấn đề liên quan đến mối liên kết là


Hầu hết các IDE phổ biến đều cung cấp các tính năng để cấu hình cho một dự án cụ thể.Dưới đây là một số mẫu


Eclipse CDT

Bao gồm cài đặt đường dẫn: enter image description here

Thư viện & đường dẫn tìm kiếm thư viện cài đặt enter image description here


Visual Studio 2013

enter image description here


Mã Blocks enter image description here enter image description here


** DEV C++ (Bloodshed C++)

Kể từ họ Câu hỏi thường gặp:

9. Tôi có thể sử dụng thư viện OpenGL và các thư viện khác bằng cách nào?

Tất cả thư viện đi kèm với Mingw đều nằm trong thư mục Lib. Tất cả đều được đặt tên theo cách sau: lib*.a Để liên kết một thư viện với dự án của bạn, chỉ cần thêm vào tùy chọn dự án, các file tùy chọn thêm:
-lopengl32
này là dành cho bao gồm thư viện libopengl32.a. Để thêm bất kỳ thư viện nào khác, chỉ cần thực hiện theo cùng một cú pháp: Nhập -l (L bằng chữ thường) cộng với tên cơ sở của thư viện (tên tệp không có lib và tiện ích mở rộng .a).

Bạn cũng có thể cân nhắc đặt tùy chọn -L ở đó để thêm đường dẫn thư mục được tìm kiếm cho thư viện.


Qt Creator

Để thêm bao gồm đường dẫn, bạn phải mở file .pro và sau đó thêm các thư mục vào biến INCLUDEPATH. Những đường dẫn này được phân tách bằng dấu cách. Tham khảo có thể được tìm thấy here.

Showing INCLUDEPATH


Nếu không ai trong số các mẫu trên áp dụng cho bạn thực sự sử dụng IDE/toolchain, tôi hy vọng bạn có thể nắm được vấn đề trừu tượng:

Đây là một vấn đề cách cung cấp các tùy chọn biên dịch/liên kết đến chuỗi công cụ thực tế của bạn. IDE được sử dụng để thiết lập ngữ cảnh là một điểm nhỏ ở đây.

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