2012-07-10 6 views
1

Я пытаюсь следовать Программе - Принципы и практика с помощью C, и я люблю его до сих пор. В начале прошлой недели я столкнулся с проблемой, которая остановила дальнейший прогресс. Я должен установить FLTK.FLTK-1.1.10 с Microsoft Visual C++ 2010 Express

После успешного создания и запуска FLTK-1.3.0 (см. Мой другой вопрос/решение), я столкнулся с проблемой, что он не работает с заголовочными файлами Stroustrup. Я думаю, что это связано с тем, что версии разные, но не знаю точно.

Итак, я вернусь к работе 1.1.

Мне не удалось создать FLTK-1.1.10 или fltk-1.1.9 с его сайта с использованием MVC++ 2010.

Так что это приводит нас к вопросам

1) Если я построю его, используя MinGW/MSys, он будет по-прежнему иметь возможность запускать из VC++? Я пытался выяснить MinGW/Msys с небольшим успехом до сих пор, поэтому я еще ничего не создал, поэтому я еще не могу проверить это сам.

2) Если он не будет запускать сборку MinGW, существует ли способ ее создания с помощью VC++?

С моей точки зрения -Building создаст больше файлов в каталоге FLTK, которые позволят мне его использовать. -MinGW использует другой компилятор для VC++, и они не будут хорошо играть вместе.

Я чувствую, что я потратил много времени на этот раздел, однако это хороший опыт обучения. Наверное, это не так хорошо для моего кровяного давления.

Я предполагаю, что в этот момент моя главная альтернатива - перейти на другую IDE. Eclipse кажется довольно приятным. Но я бы очень хотел решить эту проблему, а не отойти от VC++.

Мое предыдущее сообщение (Microsoft 2010 visual c , installing FLTK) содержит сведения об ошибках, возникающих во время компиляции, в случае, если это представляет интерес.

Я сильно искал эту проблему и еще не нашел реального решения. Надеюсь, что этот пост прояснит проблему для меня и других будущих программистов.

+0

По-прежнему не удавалось получить что-либо построенное. Попытка выяснить, как использовать Cygwin, MinGW и т. Д., Но они не очень удобны для пользователя. Очень сложно создать устаревшую версию FLTK для запуска с предоставленными заголовками. – David

+0

Это странно. В ответ на этот вопрос шла бегущая беседа, теперь она, похоже, исчезла. Если у кого есть решение, я бы хотел это услышать. Или, возможно, опубликуйте рабочее решение, которое использует код из книги? – David

+0

После безумного количества времени, пытаясь найти решение этой проблемы, я думаю, что я сдаюсь и перейду на другую IDE. Если у кого есть решение, я был бы очень рад это услышать. FKTL 1.3 работает, но мне еще нужно заставить его работать с файлами заголовков. FLTK 1.1.10 или .9 не будет строить. Ну ладно, по крайней мере, я узнал ... что-то, может быть .... – David

ответ

1

Ну, это взяло меня достаточно долго, но я, наконец, все понял. Это, кажется, земля.

  1. FLTK 1.3.0 совместима с файлами заголовков, но graph.cpp нужно небольшое изменение, чтобы позволить вещам работать.
  2. FLTK 1.1.10 не будет корректно работать с Visual Express 2010, но будет работать с версией 2008 года.
  3. Файлы заголовков работают с обоими, но вам нужно внести небольшое изменение в Graph.cpp для их работы.

После всех разочарований, которые у меня были все эти работы, я считаю справедливым написать пошаговое руководство для людей, которые могут находиться в подобных ситуациях. Книга предназначена для начинающих программистов, а не для людей, уже отлаживающих файлы заголовков и cpp. Я прошу прощения, это решение немного продолжительное, но я думаю, что это подходит только для таких людей, как я, которые могут столкнуться с этим.

Визуальный Экспресс 2008/2010 руководство

1) Построить FLTK. Не так просто, как кажется, но не так уж плохо. В 2008 году используйте FLTK 1.1.0. В 2010 году используйте 1.3.0.

  1. В 2010 см решение, которое я написал здесь - Microsoft 2010 visual c , installing FLTK

  2. За 2008 год запуска C: \ FLTK-1.1.10 \ VC2005 \ fltk.lib.vcproj вместо этого.

    Если во время процесса сборки возникли какие-либо ошибки, вам необходимо выяснить, в чем проблема.

2) Установить новый проект

  1. В 2010 году только следуя инструкциям выше
  2. За 2008 - в основном та же идея, но с некоторыми изменениями
    1. Убедитесь в том, изменить все ссылки от 1.3.0 до 1.1.10
    2. В разделе ввода вместо разделения .lib-файлов с помощью двоеточия; вместо этого используйте пробел, поэтому компоновщик> Ввод> Дополнительные зависимости будут выглядеть так: c: \ fltk-1.1.10 \ lib \ fltk.lib wsock32.lib comctl32.lib c: \ fltk-1.1.10 \ lib \ fltkjpeg. Lib C: \ FLTK-1.1.10 \ Lib \ fltkimages.lib

3) запустить тестовую программу, чтобы убедиться, что ваш FLTK правильно работает, попробуйте -

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

int main() 
{ 
Fl_Window win(320,200); 
win.show(); 
return Fl::run(); 
} 

Если какие-либо ошибки здесь, то вы не сможете продолжить.

4) Поместите файлы с his website в нужные папки.

  1. В 2008 году в рамках проекта под названием headertest -
    1. C: \ Users \ User \ Documents \ Visual Studio 2008 \ Projects \ headertest \ пут std_lib_facilities.h здесь
    2. C: \ Users \ Пользователь \ Documents \ Visual Studio 2008 \ Projects \ headertest \ headertest \ Поместите все остальные файлы .cpp и .h с его сайта здесь, и, конечно, ваши headertest.cpp и .h (если требуется) будут созданы здесь.
    3. Убедитесь, что вы правильно настроили проект, как в шагах от моего руководства выше.
  2. В 2010 году в рамках проекта под названием Fri_FLTK_Test -
    1. Сделайте то же самое, что и выше, но поместить файлы в эквиваленте 2010 - C: \ Users \ User \ Documents \ Visual Studio 2008 \ Projects \ headertest и ..Visual Studio 2010 \ Projects \ Fri_FLTK_Test \ Fri_FLTK_Test

5) Добавьте .h и .cpp файлы в активном проекте.

  1. Просто щелкните правой кнопкой мыши проект add> Существующие элементы - выберите все файлы .h и.cpp в каталоге по умолчанию. Вам не нужно добавлять .. \ std_lib_facilities.h, поскольку вы уже прямо ссылаетесь на это. Не спрашивайте меня, почему, но это работает.

6) Теперь вы увидите, что если вы запустите проект, вы получите кучу ошибок, самое главное читает -

C: \ Users \ Пользователь \ Documents \ Visual Studio 2010 \ Projects \ fri_fltk_test \ graph.cpp (237): ошибка C2084: функция 'Graph_lib :: Круг :: Круг (Point, целое)' уже имеет тело

7) Мы можем исправить это открытие Graph.cpp и комментирование раздела Circle :: Circle, например:

//Circle::Circle(Point p, int rr) // center and radius 
//:r(rr) 
//{ 
// add(Point(p.x-r,p.y-r));  // store top-left corner 
//} 

8) Сохраните изменения и запустите свой проект еще раз, вы должны обнаружить, что он работает! 9) Теперь лучшая часть, положить в коде из книги (или скопировать его из - Chapter13/chapter.13.2.cpp и запустить его должно работать

Миссии полного

Думают, я заслуживаю пива после этого.! Мне потребовалось много времени, чтобы разобраться в этом, взглянул на Msys, g ++, Netbeans и на загрузку других связанных с IDE вещей. Но это приятное чувство, что он работает над моим первоначальным выбором. Надеюсь, это руководство поможет другим в подобных ситуациях.

Особая благодарность вышла на Skydiver из Dream.In.Code форумах за помощь в решении этой проблемы.

0

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

Вы видели это сообщение?

http://answerpot.com/showthread.php?275672-FLTK+%26+Visual+C%2B%2B+Express%3F

-Si.

+0

Спасибо за ответ! Собственно, я уже видел этот пост. Но было хорошо смотреть на это снова. Возможно, это связано с тем, что оно выражается, но чем больше я думаю об этом, тем больше сомневаюсь. У меня FLTK 1.3 работает правильно, он просто ошибается, когда я начинаю использовать его заголовочные файлы. – David