Как установить библиотеку FLTK в Ubuntu 14.04

Я пытался установить эту библиотеку FLTK:

sudo apt-get install libfltk1.3-dev
sudo apt-get install libx11-dev

Я создал простые main.cpp:

#include <fltk/Window.h>
#include <fltk/Widget.h>
#include <fltk/run.h>
using namespace fltk;

int main(int argc, char **argv) {
  Window *window = new Window(300, 180);
  window->begin();
  Widget *box = new Widget(20, 40, 260, 100, "Hello, World!");
  box->box(UP_BOX);
  box->labelfont(HELVETICA_BOLD_ITALIC);
  box->labelsize(36);
  box->labeltype(SHADOW_LABEL);
  window->end();
  window->show(argc, argv);
  return run();
}

и попытался скомпилировать, используя:

g++ -o win main.cpp

После этой ошибки я следовал оригинальной инструкции, которая шла с FLTK, которая выглядела так:

Откройте оболочку и установите некоторое программное обеспечение:

sudo apt-get install g++   
sudo apt-get install gdb   
sudo apt-get install subversion  
sudo apt-get install autoconf   
sudo apt-get install libx11-dev   
sudo apt-get install libglu1-mesa-dev    

Эти два опциональны, но настоятельно рекомендуется:

sudo apt-get install libasound2-dev   
sudo apt-get install libxft-dev

Если вы планируете использовать IDE Code :: Blocks, также установите это

sudo apt-get install codeblocks

Мне нравится использовать Subversion для установки последней версии FLTK-1.3 .release:

svn co http://seriss.com/public/fltk/fltk/branches/branch-1.3/ fltk-1.3

Для обновления до последней версии просто перейдите в каталог fltk-1.3 и введите

svn update

FIXME: нет шрифта FL_SYMBOL (- -symbol - ), шрифт 15 (Zapf-Dingbats)

Когда я попытался запустить эту строку

svn co http://seriss.com/public/fltk/fltk/branches/branch-1.3/ fltk-1.3 

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

Authentication realm: <http://seriss.com:80> Subversion repository

Так что это моя история, и здесь я прошу несколько советов!

РЕДАКТИРОВАТЬ: Вот старый код это также не сработало

#include <FL/Fl.h>
#include <FL/Fl_Box.h>
#include <Fl/Fl_Windows.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()
}

Это была ошибка:

main.cpp:1:19: fatal error: FL/Fl.h: No such file or directory
 #include <FL/Fl.h>
                   ^
compilation terminated.
5
задан 25 May 2015 в 08:42

2 ответа

Относительно gcc создают отказ: похоже, что Вы используете пример FLTK 2.0 и пытаетесь скомпилировать его с FLTK 1.3.

, Если Вы собираетесь использовать 1.3, существует PDF с примерами, который установлен на /usr/share/doc/fltk1.3-doc/fltk.pdf.gz (от пакета fltk1.3-doc).

Относительно svn проблемы: Вы пытаетесь войти в чей-то svn repo, и они требуют имени пользователя и пароля. Необходимо, вероятно, изменить пароль в локальной системе теперь, потому что Вы просто попытались использовать его для вхождения в некоторую другую систему в Интернете.

<час>

Редактирование: Теперь, когда Вы обновили свой код, проблема переместилась немного... Проблемами в этой точке является включать путь, флаги компоновщика и опечатки.

, Когда Вы видите отказ на включать строке, это - потому что компилятор не знает, где искать указанный файл (или это не существует в Вашей системе). Таким образом, необходимо добавить включать путь к инструкции по компиляции. Как только Вы перемещаетесь, мимо которого, необходимо будет все еще определить соответствующие флаги компоновщика так, чтобы библиотека, которая содержит объекты для включенных файлов, была доступна компоновщику.

у Вас есть некоторые опечатки в Вашем коде:

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

И Вам нужна серия запутывающих библиотек, и включает, предполагая, что это назвали чем-то как snippet.cpp компиляция это как это:

g++ `fltk-config --cxxflags` snippet.cpp `fltk-config --libs` -lX11 -ldl -lXext -lXinerama -lXft -lfontconfig -o snippet

Относительно включать пути: Эти fltk-config --cxxflags команда производит ряд флагов для передачи gcc. Выполните его отдельно, если Вы хотите видеть, каковы те флаги.

Относительно пути компоновщика: Снова, fltk-config--libs) команда предоставляет флаги компоновщику.

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

0
ответ дан 25 May 2015 в 08:42

Для любого ищущего способ сделать работу этого кода книги Stroustrup "Программированием: Принципы и Практика", приложение D, существует немного ошибки в заголовке:

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

но в Ubuntu (или лучше сказал: в Linux) необходимо быть очень осторожными со случаями, таким образом, Вы должны иметь

#include <FL/Fl.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Windows.H>

Для проверки, что является ТОЧНЫМ названием заголовка, просто считайте/usr/include/FL/

Чтобы иметь исполняемый файл из этого файла (в этом сообщении, main.cpp), просто нужно использовать

$ fltk-config --compile main.cpp

который генерирует исполняемое основное

$ ./main

и простое окно покажет.

Между прочим, на Kubuntu 14.04 я установил FLTK с

$ sudo apt install fltk1.3-dev

который является версией 1.3.2 (достаточно новый для моих потребностей).

8
ответ дан 25 May 2015 в 18:42
  • 1
    я использую личинку customizer, перейдите к " общий settings" в нем переходят к " ядро parameters" и набор " подавите шумы всплеска reboot" к " подавите шумы всплеска reboo=pci" или = " bios" но ничто не изменяется. проблема - все еще то же. – pawan singh dhami 24 August 2016 в 17:39

Другие вопросы по тегам:

Похожие вопросы: