编辑:即时使用http://code.google.com/p/jpeg-compressor/所以我不在乎做这个工作了。
我下载了http://ijg.org/源代码,我试图将其构build为一个DLL文件。 这是我可以build立的最远,直到我走进死胡同。
我注意到有一些.c文件,我不得不删除,但我不知道如果我删除了正确的,至less有这些文件jmemmac.c
和jmemdos.c
,我想我不需要。 我不得不删除jmemmac.c
因为我在Windows上编译,但它给了更多的错误,所以我不断删除这些无用的文件,但现在我不知道该怎么做了。
以下是我在build造时遇到的所有错误:
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
好吧,如果你正在编译一个DLL,你通常不需要任何“主”功能。 我假设引用一个名为“main”或“_main”的函数的源文件是如何使用库的例子,所以它应该被保存,以摆脱那些。
在jmemmac.c中,有一个叫做“jpeg_open_backing_store”的函数,这是jmemmgr抱怨的一个未解决的外部符号。 该函数似乎具有平台相关的调用,例如mac的“FindFolder”函数。
我唯一能想到的就是学习jmemmac.c,jmemdos.c和jmemansi.c,并重写这些函数,以便在Windows平台上工作。
哦,至于“退出”未定义,包括“stdlib.h”,因为它定义了退出功能。