Я пытался установить эту библиотеку 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.
Относительно 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
) команда предоставляет флаги компоновщику.
строка других флагов компоновщика было почти полное предположение с моей стороны. Я пытался компилировать Ваш код, видел некоторый вывод ошибок для неопределенных символов и затем на основе имени функции, о котором сообщают (и справка команды человека), я смог предположить то, что библиотека обеспечила символу.
Для любого ищущего способ сделать работу этого кода книги 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 (достаточно новый для моих потребностей).