2014-10-27 5 views
5

Прежде всего, я все еще новичок здесь и поэтому понятия не имею, как отформатировать код, чтобы он выглядел аккуратно в этом вопросе , Я надеюсь, что это приемлемо. Я следую принципам и практике программирования от Stroustrup. Вы можете догадаться, в чем проблема ... да FLTK instalation. Я тщательно следил за всеми шагами, чтобы построить проект на VS C++ 2013; страницы 1204-1206. (Я успешно применил приложение C, связанное с std_lib_facilities.h).Ошибка C1083: Невозможно открыть файл include: «FL/Fl.h»: нет такого файла или каталога

Я пытался построить следующий win32 проект, как показано в книге:

#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(); 
} 

После построения решения, я получаю ошибку, которая гласит: Ошибка 1 ошибка C1083: не удается открыть включают файл: «FL /Fl.h ': Нет такого файла или каталога

Я также выполнил шаги для копирования через некоторые файлы lib из каталога FLTK lib в файлы курсов c: \ users \ pablo \ desktop \ C++ \ visual C++ \ win32project1 \ source.cpp, который является файлом, который я создал для Visual Studio Express 2013. Может кто-нибудь мне помочь? Где я могу найти этот недостающий файл? Возможно, проблема связана с тем, что версия FLTK немного устарела для использования в VS 2013? (Когда я скомпилировал библиотеку FLTK, у меня возникли некоторые ошибки, связанные с файлом резервной копии и некоторыми предупреждениями.) Я так долго исследовал это. Я нашел некоторые вопросы, связанные с этим на этом форуме, но не совсем связанные с вышеупомянутой проблемой. Большое спасибо заранее.

PS Ну, был один вопрос, связанный с той же ошибкой. Я следил за некоторыми трюками, упомянутыми как ответ на тот же вопрос, но безрезультатно.

(«Чистый трюк, который вы можете сделать для этих типов ошибок, - это поместить курсор в имя файла оператора #include и нажать Ctrl + Shift + G. Он не сработает и отобразит окно сообщения, показывающее, что включают в себя следующие пути: просто добавьте дополнительные пути включения в SDK, щелкнув правой кнопкой мыши на своем проекте и перейдите в «Свойства»> «C/C++»> «Общие» и «Дополнительные каталоги включения».)

Другое предлагаемое предложение didn Не работайте: («Убедитесь, что каталог include не является каталогом FL, а его родителем. Причина этого в том, что вы говорите #include« FL/Fl.h », вы просите компилятор вступить в папку FL, чтобы найти Fl.h, которая будет находиться в родительском элементе FL. Если вы укажете FL в качестве каталога include, вам нужно только сказать #in clude "Fl.h" ").

ответ

2

Это происходит потому, что нет заголовка файла с именем #include <FL/Fl.h> что они означают это включить либо #include <FL> или #include <FL.h> в зависимости от того, что программа вашего решения, но первый, скорее всего, что вы хотите сделать, так как это стандартная версия. #include <FL.h> - это старая библиотека и даже не включена в стандарт. Он также не включен в каждую платформу. Вы не должны использовать версию .h в этом примере.

То же самое можно сказать и для двух других файлов заголовков.

+0

hmmm. Все еще борется; это не имеет никакого значения. Возможно, это связано с экологическими переменными и путями, так как когда-то я установил Netbeans и использовал компилятор MingW для работы с IDE. Хотя я не уверен, что я должен испортить путь. Очень расстраивает. Получение такой же ошибки. – Pablo

+0

Этот ответ НЕ является истинным. Это 'FL/Fl.h' написано потому, что он ожидает, что вы сохраните эту структуру в своем каталоге include. Вам также следует хранить каталог GL, так как некоторые заголовки в каталоге FL ищут другие включенные в каталог GL, который он ожидает там. – user3353819

1

Другой ответ не удален (я буквально только что скомпилировал программу FLTK со всеми заголовками в форме #include <FL/xxx.H>). При загрузке FLTK вы получаете каталог (скажем FLTK-1.3.2), которая имеет такую ​​структуру

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

подкаталог FL содержит все файлы заголовков. Таким образом, если вы разместили каталог fltk-1.3.2, он находится в \ foo \, тогда вам нужно добавить \ foo \ fltk-1.3.2 \ в ваше дополнительное поле заголовков.Будьте осторожны, возможно, вы случайно выбрали неправильный каталог (это происходит), или вы могли бы извлечь содержимое zipped-версии файла во вложенную версию, что означает, что у вас может быть что-то вроде \ foo \ fltk-1.3.2 \ fltk-1.3.2 \ Так что посмотри.

Если вы не можете найти заголовки, у вас почти наверняка есть дополнительные поля каталогов, которые находятся в неправильном месте или в неправильном формате. Нажмите на кнопку выпадающего списка, нажмите «Изменить» и вручную нажмите кнопку новой папки и перейдите к ней.

Что вы найдете дальше, так это то, что вы должны указать компоновщик в правильном направлении. В приведенном выше примере место по умолчанию для установки файлов библиотеки (.lib static должно быть по умолчанию для FLTK), поэтому вам нужно добавить \ foo \ fltk-1.3.2 \ lib \ в свойства конфигурации -> Linker -> General -> Additional library справочники

THEN вам необходимо связаться с конкретными библиотеками. Поскольку компоновщик теперь знает, где искать вас, нужно указать путь, но просто назовите их. Для этого перейдите к свойствам конфигурации -> Linker -> Input -> Additional dependencies, щелкните раскрывающийся список, нажмите кнопку «Редактировать» и добавьте на отдельные строки (и без этих запятых) fltkd.lib, fltkformsd.lib, fltkzlib.lib , wsock32.lib

+0

Хорошо, ребята, спасибо за эти ответы. Я думаю, что есть что-то принципиально неправильное в том, что я делаю, поскольку FLTK просто не хочет играть в мяч, несмотря на попытки реализовать все ваши предложения. Возможно, мне придется удалить файлы FLTK и переустановить их. Я думаю, что это может быть связано с тем фактом, что я установил версию 1.1.10, поскольку он показывает .zip-файл. Я установлю 1.3.2 .gz и разархивирую его с помощью 7-zip. – Pablo

+0

Попробуйте выполнить следующие онлайн-инструкции: http://www.c-jump.com/bcc/common/Talk2/Cxx/FltkInstallVC/FltkInstallVC.html Вы можете либо явно указать, что он говорит, и скопировать 'FL' и' GL 'каталоги в VS включают папку и файлы' .lib' в папку lib, что означает, что вам нужно только добавить библиотеки в поле ввода. Или вы можете делать то, что я сказал, а не копировать их и сообщать компилятору, где смотреть на них. БУДЬТЕ ОСТОРОЖНЫ: при компиляции/установке FLTK, если в режиме отладки он создает файлы fltkd.lib, если в выпуске он делает файлы fltk.lib. Проверьте, что вы сделали и связали соответствующим образом. – user3353819

+0

Чтобы создать FLTK под окнами, перейдите в каталог IDE, используйте решение vc.net. Может потребоваться преобразование в VS2013. Не используйте решение vc6. – cup