Eclipse CDT & gtkmm: «... не удалось разрешить.», Но компилируется и запускается - PullRequest
3 голосов
/ 20 ноября 2011

Я пишу в Eclipse CDT на C ++ с помощью gtkmm. Мне удалось настроить Eclipse, чтобы он правильно компилировал код, добавив pkg-config gtkmm-3.0 --cflags --libs к опциям компилятора. Так что работает и работает. Но в редакторе все, что связано с gtk, подчеркнуто красным, и когда я наведу курсор на эти части, оно говорит что-то вроде: Type 'Gtk::Main' could not be resolved. Так что я мог бы написать такой код, но на самом деле это неприятно, когда автозаполнение не работает и по всему экрану появляются красные линии. Как я могу решить это?

Мой код выглядит примерно так:

#include <gtkmm-3.0/gtkmm.h>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    Gtk::Main kit(true);

    Gtk::Box* box = new Gtk::Box();

    ...

Однако я не думаю, что это связано с кодом. Потому что он хорошо работает в Code :: Blocks, с завершением кода и все. Но я предпочитаю Затмение над C :: B.

// Даниил

Ответы [ 2 ]

4 голосов
/ 21 ноября 2011

Выберите Проект -> Свойства в меню, чтобы открыть окно свойств. Затем в селекторе слева перейдите к C / C ++ general -> Пути и символы . Вы увидите список включенных каталогов. Посмотрите на вывод pkg-config --cflags gtkmm-3.0 и убедитесь, что все упомянутые каталоги также есть в этом списке.

Обратите внимание, что это пути, по которым средство проверки синтаксиса Eclipse ищет включаемые файлы. Ваш код компилируется нормально, потому что компилятор находит эти файлы так, как должен.

2 голосов
/ 09 мая 2012

Как сказал ptomato, пути должны быть настроены. Очень простой способ - использовать плагин pkg-conf . После установки вам просто нужно выбрать gtkmm-3.0 в конфигурации . Остальное будет сделано плагином. Надеюсь, эта картина поможет. Имейте в виду: скриншот показывает конф. для GTK-2.0. Вам нужен GTKMM-3.0.

...