Как использовать библиотеки разработки GTK + в Ubuntu?

Я уже полтора года программирую на Windows, и я только начал привыкать к тому, как все работает на этой платформе, но теперь я заинтересован в разработке под Linux, и у меня было трудное время, чтобы привыкнуть к рабочему процессу, отсутствию IDE и компиляции командной строки с GCC. У меня Xubuntu 13.10 64bit, кстати ..

Чтобы протестировать воды, я сделал то, что делают многие, и написал короткую программу на языке C ++ «Здравствуй, мир».

#include <iostream>

int main()
{
    std::cout << "Hello!\n";
    return 0;
}

Моя первая проблема; эта программа, кажется, получает ошибку компиляции, когда я пытаюсь скомпилировать ее с помощью GCC, но она прекрасно компилируется, когда я использую компилятор G ++:

gcc hello.cpp -o hello
/tmp/ccbmUmzf.o: In function `main':
hello.cpp:(.text+0xa): undefined reference to `std::cout'
hello.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccbmUmzf.o: In function `__static_initialization_and_destruction_0(int, int)':
hello.cpp:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
hello.cpp:(.text+0x4c): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status

Что происходит здесь, GCC не может распознать, что мой код это C ++ или что-то еще?

Моя вторая проблема связана с попыткой использования библиотек: у меня сложилось впечатление, что библиотеки разработки GTK + 3.0 включены в комплект (X) ubuntu, но когда я пытаюсь следовать простому учебнику здесь , я получаю следующую ошибку из G ++:

g++ hello.cpp -o hello
hello.cpp:1:21: fatal error: gtk/gtk.h: No such file or directory
 #include <gtk/gtk.h>
                     ^
compilation terminated.

Итак, я понял, что это означает, что библиотеки для GTK + 3.0 не установлены .. Поэтому я проверил apt -я, и я действительно не видел ничего, что было бы похоже на то, что мне было нужно ... Нужно ли мне собирать GTK + 3.0 из исходного кода или есть какой-то PPA где-то, что мне нужно ??

Эти проблемы меня это очень расстраивает ... Я знаю, что многие люди клянутся рабочим процессом разработки GNU / Linux, но как человек, привыкший работать в Visual Studio, я считаю, что этот процесс несколько непрозрачный и неинтересный TIVE. Прямо сейчас я использую коврик для мыши на Xubuntu для редактирования своего кода, и, хотя он имеет синтаксис с цветовой кодировкой, кажется, что он мало что делает. Я знаю, что в конце концов мне придётся иметь дело с несколькими файлами и созданием make-файлов, и на этом этапе я боюсь этого!

Какую бы помощь вы не оказали начинающему программисту, а полный Linux / GNU noob - это очень добро пожаловать!

5
задан 6 December 2013 в 08:50

1 ответ

Совет

Прежде всего, вам не нужно соглашаться на IDE. Установите Eclipse, он доступен в Центре программного обеспечения Ubuntu. Вы также хотите установить CDT для Eclipse, который обеспечивает поддержку C / C ++. Во-вторых, я бы очень посоветовал вам сосредоточиться на C ++ и Qt, а не на C и GTK. Qt - отличная кроссплатформенная инфраструктура, в которой используются C ++ и QML (JavaScript-подобный язык для пользовательского интерфейса), и Ubuntu все больше и больше продвигается к использованию Qt для своей будущей разработки для настольных компьютеров и мобильных устройств. Эти инструменты позволят вам не только создавать красивые приложения для рабочего стола Ubuntu, но и для Android, Windows, Mac, BlackBerry и других операционных систем. Отличной IDE для Qt является QtCreator, также доступный в Центре программного обеспечения Ubuntu, вы должны проверить его в некоторых руководствах по Qt.

Ответ

Чтобы ответить на ваш вопрос напрямую, даже если я настоятельно рекомендую сделать то, что я изложил выше, вам, вероятно, потребуются версии -dev библиотек, которые вы используете. Для GTK 3 вам, вероятно, потребуется:

sudo apt-get install libgtk-3-dev

Это должно получить вас всех заголовков GTK 3.

0
ответ дан 6 December 2013 в 08:50

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

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