ошибка: необъявленная функция - PullRequest
1 голос
/ 09 июня 2010

В моем приложении GTK + у меня есть функция в mainwin.c:

void
on_prev( GtkWidget* btn, MainWin* mw )
{
   ...
}

И в файле ui.h у меня есть:

#include "mainwin.h"
static const GtkActionEntry entries[] = {
    {
      "Go Back",
      GTK_STOCK_GO_BACK,
      "Go Back",
      "<control>b",
      "Go Back",
       G_CALLBACK(on_prev)
    },
}

Но когда я пытаюсь скомпилировать это приложение, я вижу ошибку: ui.h: ошибка: здесь не объявлено 'on_prev' (не в функции).

Что не так?

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Добавьте прототип для него, вероятно, в mainwin.h:

void
on_prev( GtkWidget* btn, MainWin* mw );
0 голосов
/ 09 июня 2010

У вас действительно не должно быть статических данных в заголовке. Это означает, что каждый раз, когда вы включаете этот файл из файла C, вы получаете новый, статический (то есть локальный для этого файла C) экземпляр массива. Скорее всего, это не то, что вам нужно.

Переместите объявление и инициализацию массива в файл C и убедитесь, что различные функции, на которые он ссылается, правильно объявлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...