• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大龍的博客

            常用鏈接

            統(tǒng)計(jì)

            最新評(píng)論

            在WindowsXP下用VS2008編譯Zlib-1.2.5 --- 轉(zhuǎn)

               zlib網(wǎng)站下載zlib源文件zip包(zlib1.2.5.zip)到本地的機(jī)器上(本人的機(jī)器是windowsXP操作系統(tǒng),按缺省設(shè)置安裝的VS2008pro),解壓縮后保存在本地磁盤(pán)的某一目錄(d:\zlib-1.2.5)。該目錄下包括若干子目錄和源文件,其中一個(gè)子目錄(d:\zlib-1.2.5\win32)中有若干make文件,Makefile.msc是在windows環(huán)境下采用微軟編譯器(vc6.0、VS2008等)的make文件,列出了4種編譯方法:
            # Usage:
              nmake -f win32/Makefile.msc                          (standard build)
              nmake -f win32/Makefile.msc LOC=-DFOO                (nonstandard build)
              nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" \
                    OBJA="inffas32.obj match686.obj"               (use ASM code, x86)
              nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF" \
                    OBJA="inffasx64.obj gvmat64.obj inffas8664.c"  (use ASM code, x64)

                本人的機(jī)器是32位系統(tǒng),沒(méi)有嘗試第4種編譯方式,前3種中只有第3種采用匯編的代碼編譯可以成功,前2種在編譯的鏈接(link)過(guò)程中出現(xiàn)錯(cuò)誤:
                link -nologo -debug -incremental:no -opt:ref -def:win32/zlib.def -dll -implib:zdll.lib  -out:zlib1.dll -base:0x5A4C0000 adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj  gzwrite.obj infback.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj  zlib1.res
               Creating library zdll.lib and object zdll.exp
            infback.obj : error LNK2019: unresolved external symbol _inflate_fast referenced in function _inflateBack
            inflate.obj : error LNK2001: unresolved external symbol _inflate_fast
            zlib1.dll : fatal error LNK1120: 1 unresolved externals

                查看Makefile.msc文件,可以發(fā)現(xiàn)在定義OBJS時(shí)沒(méi)有包括inffast.obj。
            ......
            OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \
                   gzwrite.obj infback.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj
            OBJA =

            # targets
            all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) \
                 example.exe minigzip.exe example_d.exe minigzip_d.exe

            $(STATICLIB): $(OBJS) $(OBJA)
                $(AR) $(ARFLAGS) -out:$@ $(OBJS) $(OBJA)
            ......
            infback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
                         inffast.h inffixed.h

            inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
                         inffast.h

            inflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \
                         inffast.h inffixed.h

            inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h

            trees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h

            ......

            在make文件的OBJS中加入inffast.obj(如下所示)后,make文件中所列的第1種和第2種編譯方式均可成功。

            OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \
                   gzwrite.obj infback.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj \
                   inffast.obj

            本人不清楚make文件會(huì)有這樣的問(wèn)題,也不清楚是有意設(shè)計(jì)還是bug。

            另:需要從"Visual Studio 2008 Command Prompt"使用nmake命令,以使VS2008相關(guān)系統(tǒng)參數(shù)正確設(shè)置。

            posted on 2010-09-26 11:44 大龍 閱讀(5744) 評(píng)論(2)  編輯 收藏 引用

            評(píng)論

            # re: 在WindowsXP下用VS2008編譯Zlib-1.2.5 --- 轉(zhuǎn)[未登錄](méi) 2011-03-27 05:59 Sunny

            Hi there,

            Thanks for the hint in getting zlib compiled! It seems like my Makefile.msc was also missing inffast.obj, and your suggestion worked.

            Sunny.  回復(fù)  更多評(píng)論   

            # re: 在WindowsXP下用VS2008編譯Zlib-1.2.5 --- 轉(zhuǎn) 2011-12-27 15:43 Fred W

            Hey thanks for posting this. You saved me time, my day is now shorter.  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久久久九九精品影院| 国产精品无码久久四虎| 色欲久久久天天天综合网| 亚洲AV日韩精品久久久久久久| 无码久久精品国产亚洲Av影片| 丰满少妇人妻久久久久久| 久久亚洲欧美日本精品| 奇米影视7777久久精品人人爽| 99久久免费国产精品热| 欧美麻豆久久久久久中文| 久久久久亚洲av无码专区导航| 欧美午夜A∨大片久久| 亚洲AV无码久久精品蜜桃| 欧美国产精品久久高清| 97热久久免费频精品99| 久久久久久久久久久久久久| 国产激情久久久久影院老熟女| 日日噜噜夜夜狠狠久久丁香五月| 日本亚洲色大成网站WWW久久| 国产精品久久久久久久| 久久久噜噜噜久久中文字幕色伊伊| 国产L精品国产亚洲区久久| 久久久噜噜噜久久中文福利| 久久久久亚洲精品日久生情| 欧美性猛交xxxx免费看久久久| 伊人色综合久久| 精品久久久久久无码中文字幕一区 | 久久亚洲AV无码精品色午夜麻豆| 国产成人无码精品久久久久免费 | 亚洲欧美日韩久久精品第一区| 久久精品国产WWW456C0M| 四虎国产精品免费久久久| 久久综合给合久久国产免费| 东方aⅴ免费观看久久av| 香蕉aa三级久久毛片| 亚洲伊人久久成综合人影院 | 久久91综合国产91久久精品| 热re99久久6国产精品免费| 午夜久久久久久禁播电影| 国产精品久久久久久| 久久91精品久久91综合|