Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   помогите откомпилировать либо найти рабочий код! (алгоритм LZW) (http://forum.oszone.net/showthread.php?t=156634)

stas_newar 10-11-2009 23:06 1267084

помогите откомпилировать либо найти рабочий код! (алгоритм LZW)
 
Доброго времени суток!
нужен код для кодирования и декодирования алгоритмом LZW именно на языке Си.
нашел страничку на которой все описано и есть реализация на Си, но я не могу этот код откомпилировать. компилирую на Ubuntu 9.

http://algolist.manual.ru/compress/standard/lzw.php

ребята, помогите пожалуйста, очень нужно и времени в обрез!!!

lxa85 11-11-2009 01:54 1267172

Цитата:

Цитата stas_newar
но я не могу этот код откомпилировать »

Какие ошибки выдает компилятор?
Цитата:

Цитата stas_newar
компилирую на Ubuntu 9. »

Как именно? Какая среда разработки, какой компилятор? (какие пакеты ставились для разработки ПО?)
Запрос к Google, и просмотр первой страницы с ссылками, должен снять все вопросы по нахождению готового алгоритма.
Метод LZW-сжатия данных

Admiral 11-11-2009 02:42 1267187

stas_newar, во первых пропущена закрывающая скобка "}" функции output_code () в конце исходника, что сразу бросается в глаза при копировании.
После добавления, с предупреждениями
Код:

lzw.c(153) : warning C4716: 'compress' : must return a value
lzw.c(244) : warning C4716: 'expand' : must return a value
lzw.c(302) : warning C4716: 'output_code' : must return a value

собирается компилятором от Микрософт.
Во вторых, на algolist.manual.ru сказано, что данный исходник предназначен для компиляторов С под MS-DOS, так что скажем в gcc в Ubuntu сборка не гарантируется.

stas_newar 11-11-2009 14:35 1267492

lxa85,
вот, что выдает компилятор

stas@stas-laptop:~$ gcc lzw.c
lzw.c: В функции ‘main’:
lzw.c:54: предупреждение: несовместимая неявная декларация внутренней функции ‘exit’
lzw.c:54: ошибка: слишком мало аргументов в вызове функции ‘exit’
lzw.c:61: предупреждение: несовместимая неявная декларация внутренней функции ‘strcpy’
lzw.c:72: предупреждение: несовместимая неявная декларация внутренней функции ‘exit’
lzw.c:72: ошибка: слишком мало аргументов в вызове функции ‘exit’
lzw.c:80: предупреждение: несовместимая неявная декларация внутренней функции ‘free’
lzw.c:89: предупреждение: несовместимая неявная декларация внутренней функции ‘exit’
lzw.c:89: ошибка: слишком мало аргументов в вызове функции ‘exit’
lzw.c: В функции ‘decode_string’:
lzw.c:264: предупреждение: несовместимая неявная декларация внутренней функции ‘exit’
lzw.c:264: ошибка: слишком мало аргументов в вызове функции ‘exit’
lzw.c: В функции ‘output_code’:
lzw.c:301: ошибка: expected declaration or statement at end of input

установлен последний пакет gcc и g++...
кстати по твоей ссылке, точно такие же ошибки выдает.

Admiral,
а разве исходники предназначенные для компиляторов С под MS-DOS и исходники предназначенные для компиляторов С под Linux имеют отличия? ведь язык С, он и в Африке С, или я что-то не так понимаю...

Admiral 11-11-2009 15:25 1267540

stas_newar, ошибки выводятся даже по-русски и говорят о недостаточном количестве передаваемых параметров функции exit - нужно заменить хотя бы на exit(1)
По последней ошибки ответ находится в 3 посте.

stas_newar 13-11-2009 04:26 1268973

Admiral,
выставил всем надписям exit значение 1, но компилятор всеровно выдает ошибку:
lzw.c: In function ‘main’:
lzw.c:54: warning: incompatible implicit declaration of built-in function ‘exit’
lzw.c:61: warning: incompatible implicit declaration of built-in function ‘strcpy’
lzw.c:72: warning: incompatible implicit declaration of built-in function ‘exit’
lzw.c:80: warning: incompatible implicit declaration of built-in function ‘free’
lzw.c:89: warning: incompatible implicit declaration of built-in function ‘exit’
lzw.c: In function ‘decode_string’:
lzw.c:264: warning: incompatible implicit declaration of built-in function ‘exit’
lzw.c: In function ‘output_code’:
lzw.c:301: error: expected declaration or statement at end of input

обновил Ubuntu до 9.10 , поэтому уже пишет в чем ошибки на английском...

Admiral 14-11-2009 15:37 1270115

Цитата:

Цитата stas_newar
lzw.c: В функции ‘output_code’:
lzw.c:301: ошибка: expected declaration or statement at end of input »

Цитата:

Цитата stas_newar
lzw.c: In function ‘output_code’:
lzw.c:301: error: expected declaration or statement at end of input »

Цитата:

Цитата Admiral
пропущена закрывающая скобка "}" функции output_code () в конце исходника »



Время: 02:06.

Время: 02:06.
© OSzone.net 2001-