The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Компиляция клиента  Jazz"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Компиляция клиента  Jazz"
Сообщение от Bushi Искать по авторуВ закладки(??) on 03-Май-04, 17:41  (MSK)
Есть такой проект - http://iae.dp.ua/ - Jazz

Клиент написан на c++ (qt). Не могу откомпилировать на своей системе, прошу помочь.
На что ругается компилятор (gcc version 3.3.3 [FreeBSD]) :

c++ -c -pipe -Wall -W -O -pipe -mcpu=pentiumpro -D_THREAD_SAFE  -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -Wno-deprecated -I/usr/local/share/qt/mkspecs/freebsd-g++ -I. -I/usr/local/include -I/usr/X11R6/include -o dataSocket.o dataSocket.cpp
dataSocket.cpp: In function `void getFile(QString, QObject*, int, bool)':
dataSocket.cpp:81: error: default argument given for parameter 3 of `void
   getFile(QString, QObject*, int, bool)'
datasocket.h:26: error: after previous specification in `void getFile(QString,
   QObject*, int, bool)'
dataSocket.cpp:81: error: default argument given for parameter 4 of `void
   getFile(QString, QObject*, int, bool)'
datasocket.h:26: error: after previous specification in `void getFile(QString,
   QObject*, int, bool)'
gmake: *** [dataSocket.o] Ошибка 1

В datasocket.h:26:

void getFile(QString url,QObject *widget,int menu_id=-1,bool te=false);

В datasocket.cpp:

void getFile(QString url,QObject *widget,int menu_id=-1,bool te=false)
{
}

То есть прототип и объявление функции полностью совпадают. На что тогда ругается компилятор?

Второй момент - я изменяю прототип функции, убрав предопределения аргументов. Дальше компиляция идет. Но в программе часто встречаются вызовы функции:
getFile(img,widget);
то есть в таком вызове пропущено два параметра, на что компилятор естественно ругается. В чем причина? Ведь у других все компилируется.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Компиляция клиента  Jazz"
Сообщение от solov Искать по авторуВ закладки(??) on 03-Май-04, 19:39  (MSK)
убери предопределения аргументов из datasocket.cpp а в datasocket.h  оставь или ты именно так и делал ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Компиляция клиента  Jazz"
Сообщение от Bushi Искать по авторуВ закладки(??) on 03-Май-04, 20:26  (MSK)
>убери предопределения аргументов из datasocket.cpp а в datasocket.h  оставь или ты
>именно так и делал ?

Делал наоборот - убирал предопределения аргументов в прототипе (datasocket.h). В новом стандарте предопределения запрещены?
Сделал так, как ты посоветовал - вроде стало нормально компилироваться, но выдает ошибку уже на этапе окончательной линковки:

c++ -Wl,-rpath,/usr/local/lib  -Wl,-rpath,/usr/X11R6/lib -lc_r -o client buttonWidget.o  customEdit.o  dataSocket.o  initWidget.o  j_zlib.o  JlistView.o  main.o  menuTool.o  myCombo.o  printWindow.o  serversocket.o  winPrint.o  xml_handler.o  xml_impl.o  xml_signal.o moc_buttonWidget.o  moc_commonPrint.o  moc_customEdit.o  moc_datasocket.o  moc_initWidget.o  moc_menuTool.o  moc_myCombo.o  moc_serversocket.o  moc_xml_handler.o   -L/usr/local/lib -L/usr/X11R6/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lz
customEdit.o: In function `dateValidator::validate(QString&, int&) const':
customEdit.o(.text+0x4c0): undefined reference to `simpleDate::isValid(int, int, int)'
customEdit.o: In function `dateValidator::fixup(QString&) const':
customEdit.o(.text+0x8dc): undefined reference to `simpleDate::isValid(int, int, int)'
customEdit.o(.text+0x9b7): undefined reference to `simpleDate::currentDate()'
customEdit.o(.text+0x9f8): undefined reference to `simpleDate::toString(QString const&) const'
customEdit.o: In function `customEdit::setText(QString const&)':
customEdit.o(.text+0x1460): undefined reference to `simpleDate::fromString(QString const&, simpleDate::DateFormat)'
customEdit.o(.text+0x1486): undefined reference to `simpleDate::isValid()'
customEdit.o(.text+0x1492): undefined reference to `simpleDate::currentDate()'
customEdit.o(.text+0x14c7): undefined reference to `simpleDate::toString(simpleDate::DateFormat) const'
customEdit.o: In function `customEdit::text() const':
customEdit.o(.text+0x1682): undefined reference to `simpleDate::simpleDate(int, int, int)'
customEdit.o(.text+0x1756): undefined reference to `simpleDate::toString(simpleDate::DateFormat) const'
*** Error code 1

Stop in /home/kdl/soft/jazz/client

Вроде не указана какая-нибудь библиотека. Как определить, чего нехватает?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Компиляция клиента  Jazz"
Сообщение от Bushi Искать по авторуВ закладки(??) on 03-Май-04, 21:11  (MSK)
>ошибку уже на этапе окончательной линковки:
>
>c++ -Wl,-rpath,/usr/local/lib  -Wl,-rpath,/usr/X11R6/lib -lc_r -o client buttonWidget.o  customEdit.o  dataSocket.o
> initWidget.o  j_zlib.o  JlistView.o  main.o  menuTool.o  
>myCombo.o  printWindow.o  serversocket.o  winPrint.o  xml_handler.o  xml_impl.o
> xml_signal.o moc_buttonWidget.o  moc_commonPrint.o  moc_customEdit.o  moc_datasocket.o  moc_initWidget.o
> moc_menuTool.o  moc_myCombo.o  moc_serversocket.o  moc_xml_handler.o   -L/usr/local/lib
>-L/usr/X11R6/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lz
>customEdit.o: In function `dateValidator::validate(QString&, int&) const':
>customEdit.o(.text+0x4c0): undefined reference to `simpleDate::isValid(int, int, int)'
>customEdit.o: In function `dateValidator::fixup(QString&) const':
>customEdit.o(.text+0x8dc): undefined reference to `simpleDate::isValid(int, int, int)'
>customEdit.o(.text+0x9b7): undefined reference to `simpleDate::currentDate()'
>customEdit.o(.text+0x9f8): undefined reference to `simpleDate::toString(QString const&) const'
>customEdit.o: In function `customEdit::setText(QString const&)':
>customEdit.o(.text+0x1460): undefined reference to `simpleDate::fromString(QString const&, simpleDate::DateFormat)'
>customEdit.o(.text+0x1486): undefined reference to `simpleDate::isValid()'
>customEdit.o(.text+0x1492): undefined reference to `simpleDate::currentDate()'
>customEdit.o(.text+0x14c7): undefined reference to `simpleDate::toString(simpleDate::DateFormat) const'
>customEdit.o: In function `customEdit::text() const':
>customEdit.o(.text+0x1682): undefined reference to `simpleDate::simpleDate(int, int, int)'
>customEdit.o(.text+0x1756): undefined reference to `simpleDate::toString(simpleDate::DateFormat) const'
>*** Error code 1
>
>Stop in /home/kdl/soft/jazz/client
>
>Вроде не указана какая-нибудь библиотека. Как определить, чего нехватает?


Забыли в состав проекта включить файлы simpleDate.cpp и simpleDate.h. Включил - вроде все откомпиолировалось и даже заработало. Большое спасибо.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру