ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

c++ проблема с iconv()
  #1  
Старый 11.07.2009, 19:28
Аватар для malik555
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
Провел на форуме:
350627

Репутация: 1
По умолчанию c++ проблема с iconv()

Всем привет !

Подскажите в чем проблема - нашел функция для

перекодирования с utf-8 в cp1251

мне очень нужна эта функция но она нехочит
работать подскажите пожалуйста !

Код:
     #include <stdio.h>
#include <string.h>
#include <iconv.h>
#define N 64
 
void utf8c1251 (char *from, char *to)
{
    int fl, tl; 
    
    iconv_t d; 
    fl=tl=strlen(from); 
    d=iconv_open("CP1251","UTF-8"); 
    iconv(d, &from,&fl,&to,&tl); 
    iconv_close(d);                               
}
 
int main()
{
    char s[N] = "Привет", t[N] = "";
    
    utf8c1251(s, t);
    printf("s: %s\n", s);
    printf("t: %s\n", t);
    return 0;
}

ВЫДАЕТ

Код:
1.cpp:25:2: warning: no newline at end of file
1.cpp: In function 'void utf8c1251(char*, char*)':
1.cpp:13: error: invalid conversion from 'char**' to 'const char**'
1.cpp:13: error:   initializing argument 2 of 'size_t libiconv(void*, const char**, size_t*, char**, size_t*)'
1.cpp:13: error: invalid conversion from 'int*' to 'size_t*'
1.cpp:13: error:   initializing argument 3 of 'size_t libiconv(void*, const char**, size_t*, char**, size_t*)'
1.cpp:13: error: invalid conversion from 'int*' to 'size_t*'
1.cpp:13: error:   initializing argument 5 of 'size_t libiconv(void*, const char**, size_t*, char**, size_t*)'

подскажите в чем проблема !
 
Ответить с цитированием

  #2  
Старый 11.07.2009, 22:25
Аватар для malik555
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
Провел на форуме:
350627

Репутация: 1
По умолчанию

У кого есть сервер linux или freebsd попробуйте скомпелить - код вроде как написан правельно - но у меня на сервере не компелится - может проблема в сервере !
 
Ответить с цитированием

  #3  
Старый 11.07.2009, 22:27
Аватар для bons
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
У кого есть сервер linux или freebsd попробуйте скомпелить - код вроде как написан правельно - но у меня на сервере не компелится - может проблема в сервере !
нет, код написан неправильно
Код:
..
void utf8c1251 (const char *from, char *to)
{
     size_t fl, tl;
...
и вообще это код на С, его желательно сохранять в файле *.c, а не *.cpp

Последний раз редактировалось bons; 11.07.2009 в 22:35..
 
Ответить с цитированием

  #4  
Старый 11.07.2009, 22:38
Аватар для malik555
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
Провел на форуме:
350627

Репутация: 1
По умолчанию

код перепесал но проблема осталась

Код:
void utf8c1251 (const char *from, char *to)
{
    size_t fl, tl; 
    
    iconv_t d; 
    fl=tl=strlen(from); 
    d=iconv_open("CP1251","UTF-8"); 
    iconv(d, &from,&fl,&to,&tl); 
    iconv_close(d);                               
}

Код:

1.cpp:25:2: warning: no newline at end of file
/var/tmp//ccmRr1iA.o(.text+0x2a): In function `utf8c1251(char const*, char*)':
: undefined reference to `libiconv_open'
/var/tmp//ccmRr1iA.o(.text+0x54): In function `utf8c1251(char const*, char*)':
: undefined reference to `libiconv'
/var/tmp//ccmRr1iA.o(.text+0x5f): In function `utf8c1251(char const*, char*)':
: undefined reference to `libiconv_close'
/var/tmp//ccmRr1iA.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
 
Ответить с цитированием

  #5  
Старый 11.07.2009, 22:49
Аватар для malik555
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
Провел на форуме:
350627

Репутация: 1
По умолчанию

Цитата:
Сообщение от bons  
и вообще это код на С, его желательно сохранять в файле *.c, а не *.cpp

А мне на с++ нужен - есть у кого пример ?
 
Ответить с цитированием

  #6  
Старый 12.07.2009, 15:00
Аватар для malik555
malik555
Участник форума
Регистрация: 04.02.2009
Сообщений: 132
Провел на форуме:
350627

Репутация: 1
По умолчанию

Получается gcc не видит libiconv

но он установленн.

Код:

root# ldconfig -r | grep libintl
        103:-lintl.8 => /usr/local/lib/libintl.so.8

root# ldconfig -r | grep iconv
        19:-lkiconv.3 => /lib/libkiconv.so.3
        102:-liconv.3 => /usr/local/lib/libiconv.so.3

root# ldconfig -r | grep libintl
        103:-lintl.8 => /usr/local/lib/libintl.so.8

root# nm /usr/local/lib/libiconv.so.3 | grep libiconv_open
000171a0 T libiconv_open

как это лечится ?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная проблема с интернетом по всей локалке ZneP Администрирование 6 19.06.2009 15:27
проблема с юникодом amorphius PHP, PERL, MySQL, JavaScript 3 05.05.2009 23:00
Проблема отключения служб!!! Snap Безопасность 3 10.02.2009 15:12
проблема RocketV1_0 КИРЮХА ! Схемы и программы 0 10.06.2006 23:48
Проблема Mac OS X не только в Safari DRON-ANARCHY Мировые новости 0 23.02.2006 21:12



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ