Edit:我现在正在使用http://code.google.com/p/jpeg-compressor/ http://code.google.com/p/jpeg-compressor/所以我不再关心让这个工作了。
我下载了http://ijg.org/ http://ijg.org/源代码,我尝试将其构建为 DLL 文件。
这是我在进入死胡同之前所能建造的最远距离。
我注意到有一些我必须删除的 .c 文件,但我不知道我是否删除了正确的文件,至少有这些文件jmemmac.c
and 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
好的,如果您正在编译 DLL,您通常不需要任何“主”函数。我假设引用名为“main”或“_main”的函数的源文件是如何使用该库的示例,因此它should一定要省省力去摆脱那些。
在 jmemmac.c 中,有一个名为“jpeg_open_backing_store”的函数,它是 jmemmgr 抱怨的未解析的外部符号之一。该函数似乎具有与平台相关的调用,例如 Mac 的“FindFolder”函数。
我唯一能想到的就是研究 jmemmac.c、jmemdos.c 和 jmemansi.c 并重写这些函数,以便它们可以在 Windows 平台上运行。
哦,至于“exit”未定义,请包含“stdlib.h”,因为它定义了退出函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)