Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Помогите разобраться в чем проблема


Автор: hubikos 6.2.2012, 02:38
Думаю чтото не так с библиотеками, обгуглил все, что можно, нашел пару намеков на pkgconfig но ничего конкретного
помогите люди добрые
Centos 6 x86_64
Код

/usr/include/glib-2.0/glib/gmem.h:69: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:70: error: Б─≤gsizeБ─≥ was not declared in this scope
/usr/include/glib-2.0/glib/gmem.h:71: error: Б─≤gsizeБ─≥ was not declared in this scope
/usr/include/glib-2.0/glib/gmem.h:71: error: initializer expression list treated as compound expression
/usr/include/glib-2.0/glib/gmem.h:72: error: Б─≤gsizeБ─≥ was not declared in this scope
/usr/include/glib-2.0/glib/gmem.h:73: error: Б─≤gsizeБ─≥ was not declared in this scope
/usr/include/glib-2.0/glib/gmem.h:73: error: initializer expression list treated as compound expression
/usr/include/glib-2.0/glib/gmem.h:75: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:76: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:136: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:138: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:141: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:142: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:143: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:145: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gmem.h:181: error: Б─≤gsizeБ─≥ has not been declared
In file included from /usr/include/glib-2.0/glib.h:40,
                 from /srv/work/mp3/current/src/main/utils.cpp:14:
/usr/include/glib-2.0/glib/gchecksum.h:63: error: Б─≤gssizeБ─≥ does not name a type
/usr/include/glib-2.0/glib/gchecksum.h:71: error: Б─≤gssizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gchecksum.h:74: error: Б─≤guint8Б─≥ has not been declared
/usr/include/glib-2.0/glib/gchecksum.h:75: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gchecksum.h:79: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gchecksum.h:82: error: Б─≤gssizeБ─≥ has not been declared
In file included from /usr/include/glib-2.0/glib.h:41,
                 from /srv/work/mp3/current/src/main/utils.cpp:14:
/usr/include/glib-2.0/glib/gcompletion.h:47: error: Б─≤gsizeБ─≥ has not been declared
In file included from /usr/include/glib-2.0/glib.h:42,
                 from /srv/work/mp3/current/src/main/utils.cpp:14:
/usr/include/glib-2.0/glib/gconvert.h:49: error: Б─≤GQuarkБ─≥ does not name a type
/usr/include/glib-2.0/glib/gconvert.h:57: error: Б─≤gsizeБ─≥ does not name a type
/usr/include/glib-2.0/glib/gconvert.h:66: error: Б─≤gssizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gconvert.h:69: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gconvert.h:70: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gconvert.h:73: error: Б─≤gssizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gconvert.h:75: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gconvert.h:76: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gconvert.h:79: error: Б─≤gssizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gconvert.h:83: error: Б─≤gsizeБ─≥ has not been declared
/usr/include/glib-2.0/glib/gconvert.h:84: error: Б─≤gsizeБ─≥ has not been declared




Автор: null56 6.2.2012, 12:18
а что, собственно, ты пытаешься сделатЬ???

Автор: bsa 6.2.2012, 12:18
посмотри что у тебя в этих хидерах. возможно, просто повреждены файлы.

Автор: hubikos 6.2.2012, 12:33
null56 пытаюсь сделать make
bsa спасибо, щас погляжу

Добавлено @ 12:44
bsa все ок там, ничего не пповреждено, на всякий случай переустановил glib2

Автор: null56 6.2.2012, 14:35
make чего?
какой - то файл
/srv/work/mp3/current/src/main/utils.cpp
компилишь с глибом?

Автор: hubikos 6.2.2012, 15:06
я запускаю sh скрипт который берет все файлы из папки и ДА комплит их
utils.cpp          [B---]  0 L:[  1+ 0   1/1103] *(0   /30722b)   35 0x023
#include <netdb.h>
#include <arpa/inet.h>
#include <sys/un.h>
#include <fastcgi.h>
#include <list>
#include "mp3/main/utils.h"
#include "mp3/PrivateMessages.h"
#include "mp3/sqlutils.h"
#include "mp3/Config.h"
#include "mp3/User.h"
#define OPENSSL_NO_SHA256
#define OPENSSL_NO_SHA0
#include <openssl/sha.h>
#include <glib-2.0/glib.h>

вот тут видно как я подключаю глиб

Автор: bsa 6.2.2012, 15:10
Что в тех строчках, на которые ругается компилятор?

Автор: svlary 6.2.2012, 19:14
Цитата(hubikos @  6.2.2012,  02:38 Найти цитируемый пост)
/usr/include/glib-2.0/glib/gmem.h:69: error: Б─≤gsizeБ─≥ has not been declared


Смотрим любую строчку из файла логов.... Например - эту. Ну и что можно сказать ? Вот что :
  • Обрабатывается h-файл. А вовсе НЕ объектный. Поэтому до линковки еще не дошло, а занчит БИБЛИОТЕКИ тут абсолютно непричем.
  • Сообщение гласит, что "has not been declared". Вы знаете, что таакое ДЕКЛАРАЦИЯ переменной/функции в языке С ? Наиболее вероятное предположение - что-то не так с этими самыми декларациями.
  • Внимательно смотрим на декларацию. У меня там " (gsize      n_bytes)". А у Вас какие-то буквы "Б"... Это откуда ?Но, даже если предположить, что буквы "Б" возникли при копи/пасте,
    то все равно - непонятно, почему gsize не определено ! Скоре всего, у Вас не включился какой-то из g-lib хидеров. И все эти ошибки - уже следствие этой, самой первой.

Советую внимательно посмотреть предшествующую часть лога компиляции, поискав в нем сообщение про "file какой-то.h not found"

Автор: hubikos 6.2.2012, 19:31
svlary вы скорее всего правы
Код

root@CentOS-60-64-minimal current]# ./build 
Building CXX object main/CMakeFiles/index.fcgi.dir/utils.cpp.o
In file included from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /srv/work/mp3/current/src/main/utils.cpp:14:
/usr/include/glib-2.0/glib/gtypes.h:34:24: error: glibconfig.h: Нет такого файла или каталога
/usr/include/glib-2.0/glib/gtypes.h:410:2: error: #error unknown ENDIAN type
In file included from /usr/include/glib-2.0/glib.h:33,
                 from /srv/work/mp3/current/src/main/utils.cpp:14:
/usr/include/glib-2.0/glib/garray.h:50: ошибка: expected ‘;’ before ‘*’ token
/usr/include/glib-2.0/glib/garray.h:152: ошибка: expected constructor, destructor, or type conversion before ‘*’ token
/usr/include/glib-2.0/glib/garray.h:157: ошибка: expected ‘,’ or ‘...’ before ‘*’ token
/usr/include/glib-2.0/glib/garray.h:160: ошибка: expected ‘,’ or ‘...’ before ‘*’ token
In file included from /usr/include/glib-2.0/glib/gerror.h:30,
                 from /usr/include/glib-2.0/glib/gthread.h:34,
                 from /usr/include/glib-2.0/glib/gasyncqueue.h:34,
                 from /usr/include/glib-2.0/glib.h:34,
                 from /srv/work/mp3/current/src/main/utils.cpp:14:
/usr/include/glib-2.0/glib/gquark.h:38: ошибка: ‘guint32’ does not name a type
/usr/include/glib-2.0/glib/gquark.h:42: ошибка: ‘GQuark’ does not name a type
/usr/include/glib-2.0/glib/gquark.h:43: ошибка: ‘GQuark’ does not name a type
/usr/include/glib-2.0/glib/gquark.h:44: ошибка: ‘GQuark’ does not name a type
/usr/include/glib-2.0/glib/gquark.h:45: ошибка: нет декларации ‘GQuark’ в этой области видимости
In file included from /usr/include/glib-2.0/glib/gthread.h:34,
                 from /usr/include/glib-2.0/glib/gasyncqueue.h:34,
                 from /usr/include/glib-2.0/glib.h:34,
                 from /srv/work/mp3/current/src/main/utils.cpp:14:
/usr/include/glib-2.0/glib/gerror.h:38: ошибка: ‘GQuark’ does not name a type
/usr/include/glib-2.0/glib/gerror.h:43: ошибка: нет декларации ‘GQuark’ в этой области видимости
/usr/include/glib-2.0/glib/gerror.h:44: ошибка: expected primary-expression before ‘code’



/usr/include/glib-2.0/glib/gtypes.h:34:24: error: glibconfig.h: Нет такого файла или каталога
осталось понять ка крешить эту проблему, буду гуглить, но если вы знаете подскажите плиз

Автор: tzirechnoy 6.2.2012, 19:46
Цитата
 pkgconfig


1) И шо таки говорит pkgconfig?
2) И Вам таки самому трудно догадаться, что надо приводить всё, что говорит компилятор -- вплоть до строки его вызова?

Автор: hubikos 6.2.2012, 20:02
root@CentOS-60-64-minimal ~]# pkg-config --cflags glib-2.0
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include  

Автор: tzirechnoy 6.2.2012, 20:13
Осталось только посмотреть на Вашу строку компилятора, и полный его вывод.

Добавлено через 57 секунд
Впрочем, и без строки компилятора ясно, что в его вызове нет -I/usr/lib64 и т.д.

Автор: hubikos 7.2.2012, 10:32
,большое спасибо всем. проблема решена

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)