Стоит линукс Open Suse 11.1 (Текстовый режим)
Проблема следующая - ставлю асечный сервер iserverd http://iserverd.khstu.ru/russian/install.html
Пакет IServerd-2.0.0.tar.gz разархивировал, configure проходит нормально не ругается.
Но make all даёт такие ошибки:
g++ -I. -DHAVE_CONFIG_H -Iinclude/ -Itvision/ -I/var/lib/pgsql/ -I/var/lib/pgsql//libpq -DVAR_DIR=/var/run/iserverd -DBIN_DIR=/usr/bin -DETC_DIR=/etc/iserverd -DLOG_DIR=/var/log/iserverd -c system/daemon.cpp -o system/daemon.o
In file included from system/daemon.cpp:34:
include/includes.h:157:22: error: libpq-fe.h: No such file or directory
include/includes.h:158:22: error: libpq-fs.h: No such file or directory
In file included from include/includes.h:161,
from system/daemon.cpp:34:
include/public.h:84: error: expected initializer before ‘*’ token
In file included from include/proto.h:449,
from include/includes.h:162,
from system/daemon.cpp:34:
./database/db_proto.h:94: error: ‘PGresult’ was not declared in this scope
./database/db_proto.h:94: error: ‘res’ was not declared in this scope
./database/db_proto.h:94: error: expected primary-expression before ‘unsigned’
./database/db_proto.h:94: error: expected primary-expression before ‘unsigned’
./database/db_proto.h:94: error: initializer expression list treated as compound expression
./database/db_proto.h:104: error: ‘PGconn’ was not declared in this scope
./database/db_proto.h:104: error: ‘dbconn’ was not declared in this scope
./database/db_proto.h:104: error: expected primary-expression before ‘char’
./database/db_proto.h:104: error: expected primary-expression before ‘int’
./database/db_proto.h:104: error: initializer expression list treated as compound expression
./database/db_proto.h:105: error: ‘PGconn’ was not declared in this scope
./database/db_proto.h:105: error: ‘dbconn’ was not declared in this scope
./database/db_proto.h:105: error: expected primary-expression before ‘char’
./database/db_proto.h:105: error: expected primary-expression before ‘int’
./database/db_proto.h:105: error: initializer expression list treated as compound expression
./database/db_proto.h:106: error: ‘PGconn’ was not declared in this scope
./database/db_proto.h:106: error: ‘dbconn’ was not declared in this scope
./database/db_proto.h:106: error: expected primary-expression before ‘char’
./database/db_proto.h:106: error: initializer expression list treated as compound expression
./database/db_proto.h:107: error: ‘PGconn’ was not declared in this scope
./database/db_proto.h:107: error: ‘dbconn’ was not declared in this scope
./database/db_proto.h:107: error: expected primary-expression before ‘char’
./database/db_proto.h:107: error: expected primary-expression before ‘char’
./database/db_proto.h:107: error: initializer expression list treated as compound expression
./database/db_proto.h:108: error: ‘PGconn’ was not declared in this scope
./database/db_proto.h:108: error: ‘dbconn’ was not declared in this scope
./database/db_proto.h:108: error: expected primary-expression before ‘char’
./database/db_proto.h:108: error: initializer expression list treated as compound expression
./database/db_proto.h:111: error: ‘PGresult’ was not declared in this scope
./database/db_proto.h:111: error: ‘res’ was not declared in this scope
./database/db_proto.h:111: error: expected primary-expression before ‘char’
./database/db_proto.h:111: error: initializer expression list treated as compound expression
system/daemon.cpp: In function ‘BOOL write_pid()’:
system/daemon.cpp:48: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:48: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:48: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:55: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:55: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:55: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:63: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:63: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:63: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp: In function ‘int become_daemon()’:
system/daemon.cpp:77: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:82: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:96: warning: deprecated conversion from string constant to ‘char*’
system/daemon.cpp:101: warning: deprecated conversion from string constant to ‘char*’
make: *** [system/daemon.o] Error 1Видел подобную тему здесь: http://forum.ubuntu.ru/index.php?topic=20495.0
вот что писали:
"помести в директорию_откуда_инсталишь/include файлы libpq-fe.h libpq-fs.h postgres_ext.h
после этого у меня скомпилилось только что"Но у меня этих файлов (libpq-fe.h libpq-fs.h postgres_ext.h) нет.
Поидее они должны появиться после установки libpq-dev, но они так и не появились. Может потому что у меня libpq.so.5.1 а надо 3 версию.
Что посоветуете, что скачать или что изменить для правильной компиляции
>[оверквотинг удален]
> make: *** [system/daemon.o] Error 1
> Видел подобную тему здесь: http://forum.ubuntu.ru/index.php?topic=20495.0
> вот что писали:
> "помести в директорию_откуда_инсталишь/include файлы libpq-fe.h libpq-fs.h postgres_ext.h
> после этого у меня скомпилилось только что"
> Но у меня этих файлов (libpq-fe.h libpq-fs.h postgres_ext.h) нет.
> Поидее они должны появиться после установки libpq-dev, но они так и не
> появились. Может потому что у меня libpq.so.5.1
> а надо 3 версию.
> Что посоветуете, что скачать или что изменить для правильной компиляцииРаз этих файлов нет, значит надо установить пакет с клиентом PostgreSQL и пакет разработчика PostgreSQL И будет вам щасте. Судя по названиям файлов оно хочет клиент Postgre версии <= 8.1.
Вобщем нашел libpq и файлы libpq-fe.h libpq-fs.h postgres_ext.h скопировал
Компиляция запустилась, но постоянно возникали ошибки, вот что выдает:database/defrag_db.cpp:423: warning: deprecated conversion from string constant to ‘char*’
database/defrag_db.cpp:423: warning: deprecated conversion from string constant to ‘char*’
database/defrag_db.cpp:432: warning: deprecated conversion from string constant to ‘char*’
g++ -I. -DHAVE_CONFIG_H -g -O2 -Iinclude/ -Itvision/ -I/var/lib/pgsql/ -I/var/lib/pgsql//libpq -DVAR_DIR=/var/run/iserverd -DBIN_DIR=/usr/bin -DETC_DIR=/etc/iserverd -DLOG_DIR=/var/log/iserverd -Wno-deprecated -c database/cookies_db.cpp -o database/cookies_db.o
database/cookies_db.cpp: In function ‘int db_cookie_insert(long unsigned int, char*, short unsigned int)’:
database/cookies_db.cpp:45: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:50: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp: In function ‘int db_cookie_delete(long unsigned int)’:
database/cookies_db.cpp:72: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:77: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp: In function ‘int db_cookie_delete(char*)’:
database/cookies_db.cpp:104: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:109: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp: In function ‘long unsigned int db_cookie_check(char*)’:
database/cookies_db.cpp:141: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:146: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:152: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp: In function ‘int db_cookie_get(long unsigned int, char*, short unsigned int&, short unsigned int)’:
database/cookies_db.cpp:186: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:191: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:197: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp: In function ‘void db_cookie_use(long unsigned int)’:
database/cookies_db.cpp:227: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:232: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp: In function ‘void db_cookie_use(char*)’:
database/cookies_db.cpp:259: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:264: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp: In function ‘void db_cookie_check_expired()’:
database/cookies_db.cpp:292: warning: deprecated conversion from string constant to ‘char*’
database/cookies_db.cpp:297: warning: deprecated conversion from string constant to ‘char*’
g++ -I. -DHAVE_CONFIG_H -g -O2 -Iinclude/ -Itvision/ -I/var/lib/pgsql/ -I/var/lib/pgsql//libpq -DVAR_DIR=/var/run/iserverd -DBIN_DIR=/usr/bin -DETC_DIR=/etc/iserverd -DLOG_DIR=/var/log/iserverd -Wno-deprecated -c database/error_db.cpp -o database/error_db.o
database/error_db.cpp: In function ‘int handle_database_error(PGresult*, char*)’:
database/error_db.cpp:40: error: using typedef-name ‘ExecStatusType’ after ‘enum’
/usr/include/libpq-fe.h:84: error: ‘ExecStatusType’ has a previous declaration here
database/error_db.cpp:40: error: invalid type in declaration before ‘;’ token
database/error_db.cpp:50: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:51: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:52: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:58: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:67: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:70: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp: In function ‘void uNoticeStub(void*, const char*)’:
database/error_db.cpp:93: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:93: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:93: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:103: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:113: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:122: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp: In function ‘void wait_for_database()’:
database/error_db.cpp:159: warning: deprecated conversion from string constant to ‘char*’
database/error_db.cpp:167: warning: deprecated conversion from string constant to ‘char*’
make: *** [database/error_db.o] Error 1
Что теперь посоветуете
Бедный, тяжело жить забаненным Гуглем? Вот злыдни-то!?-Wno-write-strings и ещё к-у-у-уча вариантов изворотов:
http://stackoverflow.com/questions/59670/how-to-get-rid-of-d...
> Бедный, тяжело жить забаненным Гуглем? Вот злыдни-то!?
> -Wno-write-strings и ещё к-у-у-уча вариантов изворотов:
> http://stackoverflow.com/questions/59670/how-to-get-rid-of-d...Я к сожаленью не очень понял как сделать прохождение-Wno-write-strings к gcc подавит это предупреждение. Нужно прописать какую-ту команду, а потом снова набрать make?
Или нужно залезть в какой-то файл и поменять в нем что-то? Напишите пожалуйста поподробнее, я новичок в linux
>> Бедный, тяжело жить забаненным Гуглем? Вот злыдни-то!?
>> -Wno-write-strings и ещё к-у-у-уча вариантов изворотов:
>> http://stackoverflow.com/questions/59670/how-to-get-rid-of-d...
> Я к сожаленью не очень понял как сделать прохождение-Wno-write-strings к gcc подавит
> это предупреждение. Нужно прописать какую-ту команду, а потом снова набрать make?
> Или нужно залезть в какой-то файл и поменять в нем что-то? Напишите
> пожалуйста поподробнее, я новичок в linuxперед ./configure сделайте
export CXXFLAGS=" -Wno-write-strings "
потом сделайте ./configure и смотрите предыдущий мой пост, в файле db_error.cpp есть ошибки, на которых компилятор прекращает компиляцию, на эти Warningи можно не обращать внимания, они на совести тех, кто писал этот костыльPS:
Не проще-ли вместо ICQ использовать Jabber? С ним проблем значительно меньше, возьмите eJabberd например он вообще компиляции не требует, т.к готовым пакетом вместе с erlang и библиотеками для erlang без которых он не запускаеся
>[оверквотинг удален]
> database/error_db.cpp:93: warning: deprecated conversion from string constant to ‘char*’
> database/error_db.cpp:93: warning: deprecated conversion from string constant to ‘char*’
> database/error_db.cpp:103: warning: deprecated conversion from string constant to ‘char*’
> database/error_db.cpp:113: warning: deprecated conversion from string constant to ‘char*’
> database/error_db.cpp:122: warning: deprecated conversion from string constant to ‘char*’
> database/error_db.cpp: In function ‘void wait_for_database()’:
> database/error_db.cpp:159: warning: deprecated conversion from string constant to ‘char*’
> database/error_db.cpp:167: warning: deprecated conversion from string constant to ‘char*’
> make: *** [database/error_db.o] Error 1
> Что теперь посоветуетеIserverd вам настолько критичен?Если да, то придется лезть в исходники и править ошибки.
database/error_db.cpp в этом файле компилятор нашел ошибки
database/error_db.cpp:40: error: using typedef-name ‘ExecStatusType’ after ‘enum’
/usr/include/libpq-fe.h:84: error: ‘ExecStatusType’ has a previous declaration here
database/error_db.cpp:40: error: invalid type in declaration before ‘;’ token
Исправляйте их и будет вам Щасте. Код кривой как винт моторной лодки.
Спасибо за помощь!
Как я понял наошибки warning не стоит обращать внимания. А подскажите пожалуйста, хотя бы на 2 примерах что в самих файлах нужно поменять?1)> database/error_db.cpp: In function ‘void wait_for_database()’:
Здесь нужно в скобках какое-то значение написать, какое? Или что-то удалить в этой строке?2)database/error_db.cpp:40: error: using typedef-name ‘ExecStatusType’ after ‘enum’
> Спасибо за помощь!
> Как я понял наошибки warning не стоит обращать внимания. А подскажите пожалуйста,
> хотя бы на 2 примерах что в самих файлах нужно поменять?
> 1)> database/error_db.cpp: In function ‘void wait_for_database()’:
> Здесь нужно в скобках какое-то значение написать, какое? Или что-то удалить в
> этой строке?
> 2)database/error_db.cpp:40: error: using typedef-name ‘ExecStatusType’
> after ‘enum’[telepat mode="on"]Ошибка с типами данных у вас. [telepat mode="off"] Что именно менять я не подскажу, т.к не вижу исходников. Это уж вы как-нибудь сами =) Подсказок уже достаточно вроде сделано