2014-10-27 29 views
5

Trước hết tôi vẫn mới ở đây và do đó không biết cách định dạng mã sao cho nó trông gọn gàng trong câu hỏi này , Tôi hy vọng điều này là chấp nhận được. Tôi đang tuân theo các nguyên tắc lập trình và thực hành từ Stroustrup. Bạn có thể đoán vấn đề là gì ... có FLTK instalation. Tôi đã làm theo tất cả các bước một cách cẩn thận để xây dựng dự án trong VS C++ 2013; các trang 1204-1206. (Tôi đã làm phụ lục C thành công, phải làm với std_lib_facilities.h).lỗi C1083: Không thể mở bao gồm tệp: 'FL/Fl.h': Không có tệp hoặc thư mục nào như vậy

Tôi đã cố gắng xây dựng các dự án win32 sau, như thể hiện trong cuốn sách:

#include <FL/Fl.h> 
#include <FL/Fl_Box.h> 
#include <FL/Fl_Window.h> 

int main() 
{ 
Fl_Window window(200, 200, "Window title"); 
Fl_Box box(0, 0, 200, 200, "Hey, I mean, Hello, World!"); 
window.show(); 
return Fl::run(); 
} 

Sau khi xây dựng giải pháp, tôi nhận được một lỗi mà đọc: Lỗi 1 lỗi C1083: Không thể mở bao gồm file: 'FL /Fl.h ': Không có tệp hoặc thư mục nào như vậy

Tôi cũng đã làm theo các bước để sao chép trên một số tệp lib từ thư mục lib FLTK vào c: \ users \ pablo \ desktop \ C++ tệp khóa học \ visual C++ \ win32project1 \ source.cpp là tập tin tôi đã tạo cho Visual Studio Express 2013. Ai đó có thể giúp tôi không? Tôi tìm tệp bị thiếu này ở đâu? Có phải vấn đề có thể liên quan đến thực tế là phiên bản FLTK hơi lỗi thời khi được sử dụng trong VS 2013? (Khi tôi biên soạn thư viện FLTK, tôi có một số lỗi liên quan đến tập tin sao lưu và một số cảnh báo.) Tôi đã nghiên cứu điều này một cách khó khăn. Tôi tìm thấy một số câu hỏi phải làm với điều này trong diễn đàn này nhưng không chính xác liên quan đến vấn đề được đề cập ở trên. Cảm ơn rất nhiều trước.

PS Vâng, có một câu hỏi phải làm với cùng một lỗi. Tôi đã theo một số thủ thuật được đề cập như một câu trả lời cho cùng một câu hỏi nhưng vô ích.

("Một mẹo nhỏ gọn bạn có thể làm cho các loại lỗi này là đặt con trỏ của bạn vào tên tệp của câu lệnh #include và nhấn Ctrl + Shift + G. Nó sẽ thất bại và hiển thị hộp thông báo hiển thị những gì bao gồm những con đường đang có. các giải pháp là chỉ cần thêm bổ sung bao gồm đường dẫn đến SDK bằng cách click chuột dự án của bạn và đi đến Properties> C/C++> General và thiết lập "bổ sung bao gồm Thư mục". ")

những gợi ý khác cho thấy didn Không hoạt động: ("Hãy chắc chắn rằng thư mục include không phải là thư mục FL, mà là thư mục cha của nó. Lý do cho điều này là khi bạn nói #include" FL/Fl.h ", bạn đang yêu cầu trình biên dịch bước vào thư mục được gọi là FL để tìm Fl.h, sẽ nằm trong cha mẹ của FL Nếu bạn chỉ định FL làm thư mục bao gồm thì bạn chỉ cần nói #in "Fl.h" ").

Trả lời

2

Đây là vì không có tập tin header tên #include <FL/Fl.h> ý nghĩa của chúng bằng cách này là bao gồm một trong hai #include <FL> hoặc #include <FL.h> tùy thuộc vào những gì chương trình làm của bạn, nhưng trước đây rất có thể những gì bạn muốn làm vì nó là phiên bản tiêu chuẩn. #include <FL.h> là một thư viện cũ và thậm chí không được bao gồm trong tiêu chuẩn. Nó cũng không được bao gồm trong mọi nền tảng. Bạn không nên sử dụng phiên bản .h trong ví dụ này.

Điều tương tự cũng có thể được nói cho hai tệp tiêu đề khác.

+0

hmmm. Vẫn còn đấu tranh; nó không tạo ra bất kỳ sự khác biệt nào. Có lẽ nó phải làm với các biến môi trường và đường dẫn, vì đôi khi tôi đã cài đặt Netbeans và đang sử dụng trình biên dịch MingW để làm việc với IDE. Tôi không chắc chắn nếu tôi nên mess với con đường mặc dù. Rất bực mình. Nhận được cùng một lỗi. – Pablo

+0

Câu trả lời này KHÔNG đúng. Nó 'FL/Fl.h' được viết bởi vì nó hy vọng bạn duy trì cấu trúc này trong thư mục include của bạn. Bạn nên giữ GL thư mục với nó quá như một số tiêu đề trong thư mục FL tìm khác bao gồm trong thư mục GL mà nó dự kiến ​​sẽ có. – user3353819

1

Câu trả lời khác không đúng từ xa (tôi đã thực sự biên soạn một chương trình FLTK với tất cả các tiêu đề ở dạng #include <FL/xxx.H>). Khi bạn tải xuống FLTK bạn nhận được một thư mục (nói fltk-1.3.2) có cấu trúc này

/fltk-1.3.2/ 
    FL/ 
    GL/ 
    src/ 
    lib/ 
    examples/ 
    + other stuff 

Thư mục con FL chứa tất cả các tệp tiêu đề. Vì vậy, nếu bạn đặt thư mục fltk-1.3.2 vào \ foo \ thì bạn cần thêm \ foo \ fltk-1.3.2 \ vào trường tiêu đề bổ sung của bạn.Hãy cẩn thận, bạn có thể đã vô tình chọn thư mục sai (nó xảy ra) hoặc bạn có thể trích xuất nội dung của một phiên bản nén của tập tin vào một phiên bản lồng nhau của chính nó có nghĩa là bạn có thể có một cái gì đó như \ foo \ fltk-1.3.2 \ fltk-1.3.2 \ Vì vậy, có một cái nhìn.

Nếu không thể tìm thấy tiêu đề, bạn gần như chắc chắn có trường bổ sung bao gồm trường thư mục tìm kiếm sai địa điểm hoặc định dạng sai. Nhấp vào nút thả xuống, nhấp vào chỉnh sửa và nhấp vào nút thư mục mới theo cách thủ công và điều hướng đến nút đó.

Điều bạn sẽ thấy tiếp theo là bạn phải trỏ trình liên kết theo đúng hướng. Ở phía trên nơi mặc định để cài đặt các tệp thư viện (.lib static nên được mặc định cho FLTK), do đó bạn cần thêm \ foo \ fltk-1.3.2 \ lib \ vào thuộc tính cấu hình -> Linker -> General -> Thư viện bổ sung thư mục

THÌ bạn cần liên kết đến các thư viện cụ thể. Kể từ khi mối liên kết bây giờ biết nơi để tìm bạn xuống cần phải xác định đường dẫn, nhưng chỉ cần đặt tên cho họ. Để làm như vậy, hãy vào thuộc tính cấu hình -> Trình liên kết -> Đầu vào -> Phụ thuộc bổ sung, nhấp vào tùy chọn thả xuống, nhấp vào chỉnh sửa và thêm trên các dòng riêng biệt (và không có dấu phẩy này) fltkd.lib, fltkformsd.lib, fltkzlib.lib , wsock32.lib

+0

Ok guys cảm ơn cho những câu trả lời. Tôi nghĩ rằng có cái gì đó về cơ bản sai trong những gì tôi đang làm kể từ FLTK chỉ không muốn chơi bóng mặc dù cố gắng để thực hiện tất cả các đề xuất của bạn. Tôi có thể phải xóa các tập tin FLTK và cài đặt lại chúng. Tôi nghĩ rằng nó có thể phải làm với thực tế là tôi đã cài đặt phiên bản 1.1.10, vì nó cho thấy một tập tin .zip. Tôi sẽ cài đặt 1.3.2 .gz và giải nén nó với 7-zip. – Pablo

+0

Hãy thử làm theo một số hướng dẫn trực tuyến như: http://www.c-jump.com/bcc/common/Talk2/Cxx/FltkInstallVC/FltkInstallVC.html Bạn có thể làm rõ ràng những gì nó nói và sao chép 'FL' và' GL 'thư mục đến thư mục bao gồm VS và tệp' .lib' vào thư mục lib có nghĩa là bạn chỉ phải thêm lib vào trường 'đầu vào' Hoặc bạn có thể làm những gì tôi đã nói, không sao chép chúng và thông báo cho trình biên dịch biết tìm cho họ. CẨN THẬN: khi bạn biên dịch/cài đặt FLTK, nếu trong chế độ gỡ lỗi, nó sẽ tạo các tệp fltkd.lib, nếu trong bản phát hành, nó sẽ tạo các tệp fltk.lib. Kiểm tra xem bạn đã làm gì và liên kết một cách thích hợp. – user3353819

+0

Để xây dựng FLTK dưới cửa sổ, hãy vào thư mục IDE, sử dụng giải pháp vc.net. Nó có thể cần chuyển đổi sang VS2013. Không sử dụng giải pháp vc6. – cup

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