Как построить этот проект?(jpeg lib) - PullRequest
0 голосов
/ 04 декабря 2011

Редактировать: я сейчас использую http://code.google.com/p/jpeg-compressor/, так что я больше не хочу делать эту работу.

Я скачал исходный код http://ijg.org/, я пыталсяпостроить его как файл DLL.Это самое далекое, что я мог построить, пока не попал в тупик.

Я заметил, что есть некоторые файлы .c, которые мне пришлось удалить, но я не знаю, удалил ли я правильные, были хотя бы этифайлы jmemmac.c и jmemdos.c, которые я решил, что мне не нужно.Мне пришлось удалить jmemmac.c, потому что я компилировал в Windows, но он выдавал больше ошибок, поэтому я продолжал удалять эти бесполезные файлы, но теперь я не знаю, что делать дальше.

Вот все ошибки, которые я получил, когдаздание:

1>.\ansi2knr.c(273) : warning C4013: 'exit' undefined; assuming extern returning int

1>.\example.c(116) : warning C4013: 'exit' undefined; assuming extern returning int
1>.\example.c(379) : warning C4013: 'put_scanline_someplace' undefined; assuming extern returning int

1>ckconfig.obj : error LNK2005: _main already defined in wrjpgcom.obj
1>djpeg.obj : error LNK2005: _main already defined in wrjpgcom.obj
1>rdjpgcom.obj : error LNK2005: _main already defined in wrjpgcom.obj
1>jpegtran.obj : error LNK2005: _main already defined in wrjpgcom.obj
1>cjpeg.obj : error LNK2005: _main already defined in wrjpgcom.obj
1>ansi2knr.obj : error LNK2005: _main already defined in wrjpgcom.obj
1>jmemmgr.obj : error LNK2001: unresolved external symbol _jpeg_open_backing_store
1>jmemmgr.obj : error LNK2001: unresolved external symbol _jpeg_get_small
1>jmemmgr.obj : error LNK2001: unresolved external symbol _jpeg_mem_term
1>jmemmgr.obj : error LNK2001: unresolved external symbol _jpeg_free_large
1>jmemmgr.obj : error LNK2001: unresolved external symbol _jpeg_get_large
1>jmemmgr.obj : error LNK2001: unresolved external symbol _jpeg_mem_available
1>jmemmgr.obj : error LNK2001: unresolved external symbol _jpeg_free_small
1>jmemmgr.obj : error LNK2001: unresolved external symbol _jpeg_mem_init
1>example.obj : error LNK2001: unresolved external symbol _image_height
1>example.obj : error LNK2001: unresolved external symbol _image_buffer
1>example.obj : error LNK2001: unresolved external symbol _put_scanline_someplace
1>example.obj : error LNK2001: unresolved external symbol _image_width

1 Ответ

0 голосов
/ 04 декабря 2011

Хорошо, если вы компилируете DLL, вам обычно не нужны какие-либо "основные" функции. Я предполагаю, что исходные файлы, ссылающиеся на функцию с именем "main" или "_main", являются примерами того, как использовать библиотеку, поэтому следует сохранить, чтобы избавиться от них.

В jmemmac.c есть функция под названием «jpeg_open_backing_store», которая является одним из неразрешенных внешних символов, на которые жалуется jmemmgr. Похоже, что эта функция имеет платформо-зависимые вызовы, такие как функция «FindFolder» для Mac.

Единственное, что я могу придумать, - это изучить jmemmac.c, jmemdos.c и jmemansi.c и переписать эти функции, чтобы они работали на платформе Windows.

О, а что касается «выхода», который не определен, включите «stdlib.h», так как он определяет функцию выхода.

...