Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: KDevelop & library  (Прочитано 10623 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Estagus
Гость
« : 29-08-2004 04:16 » 

У меня есть проблемка...
Я начал писать небольшую прогу используя KDevelop 3.0.4 (C++) и библиотеку ipq.
У меня не компилится, т.к. "undefined reference to `ipq_perror(char const*)"... Жаль И так на каждой функции из libipq... Жаль(
Вроде включил -lipq. include стоит... Что может быть не так?
Прошу помощи у спецов.

З.Ы.:
  Просьба не предлагать использовать другие среды разработки.
Записан
Estagus
Гость
« Ответ #1 : 29-08-2004 04:22 » new

Команда, на которой падает:
g++ -I/usr/include -g -O2 -o traffic_acc -static traffic_acc.o listener.o globals.o -lipq
*traffic_acc.o(.text+0x1b): In function `main':
*/home/wizard/PROGS/traffic_acc/src/traffic_acc.cpp:73: undefined reference to `ipq_perror(char const*)'
*collect2: ld returned 1 exit status
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 30-08-2004 09:13 » 

Estagus, попробуй у себя в сорсах убрать
Код:
#include "libipq.h"

вместо этого сделать такое объявление

Код:
extern "C" void ipq_perror(const char *s);

У них в заголовках отсутствует поддержка С++, поэтому компилятор меняет имя в соответствии с правилами name mangling.  надо самому сделать объявления функций из libipq, обернув их в
Код:
extern "C" { ... }

Может быть, поможет такой код (но я не уверен):
Код:
extern "C" {
#include "libipq.h"
}
« Последнее редактирование: 30-11-2007 23:46 от Алексей1153++ » Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #3 : 30-08-2004 09:23 » 

Estagus, я с ентим делом не работал. Ну, что могу по советовать попробуй сменить позицию -lipq например вот так
g++ -I/usr/include -g -O2 -o traffic_acc -static -lipq traffic_acc.o listener.o globals.o
или так сделай так
g++ -I/usr/include -g -O2 -o traffic_acc -static /usr/lib/libipq.a traffic_acc.o listener.o globals.o /usr/lib/libipq.a
или еще как вот по этой ссылке http://lists.netfilter.org/pipermail/netfilter/2002-December/040530.html
можно глянуть как человек компилирует программу с ipq правда он там решает другую проблему
Записан

Странно всё это....
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #4 : 30-08-2004 09:25 » 

npak, а я и забыл про такие дела. Улыбаюсь
Записан

Странно всё это....
Estagus
Гость
« Ответ #5 : 30-08-2004 22:17 » 

Всем спасибо. Я уже сам... Улыбаюсь)
Просто туплю...
Надо было:
extern "C" {
 #include "libipq.h"
 }
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines