⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.compilation.problems

📁 一个解压程序,只要设定了解压路径和解压文件的种类,就可以随意解压
💻 PROBLEMS
字号:
bzip2-1.0 should compile without problems on the vast majority ofplatforms.  Using the supplied Makefile, I've built and tested itmyself for x86-linux, sparc-solaris, alpha-linux, x86-cygwin32 andalpha-tru64unix.  With makefile.msc, Visual C++ 6.0 and nmake, you canbuild a native Win32 version too.  Large file support seems to workcorrectly on at least alpha-tru64unix and x86-cygwin32 (on Windows2000).When I say "large file" I mean a file of size 2,147,483,648 (2^31)bytes or above.  Many older OSs can't handle files above this size,but many newer ones can.  Large files are pretty huge -- most filesyou'll encounter are not Large Files.Earlier versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a widevariety of platforms without difficulty, and I hope this version willcontinue in that tradition.  However, in order to support large files,I've had to include the define -D_FILE_OFFSET_BITS=64 in the Makefile.This can cause problems.The technique of adding -D_FILE_OFFSET_BITS=64 to get large filesupport is, as far as I know, the Recommended Way to get correct largefile support.  For more details, see the Large File SupportSpecification, published by the Large File Summit, at   http://www.sas.com/standard/large.file/As a general comment, if you get compilation errors which you thinkare related to large file support, try removing the above define fromthe Makefile, ie, delete the line   BIGFILES=-D_FILE_OFFSET_BITS=64 from the Makefile, and do 'make clean ; make'.  This will give you aversion of bzip2 without large file support, which, for mostapplications, is probably not a problem.  Alternatively, try some of the platform-specific hints listed below.You can use the spewG.c program to generate huge files to test bzip2'slarge file support, if you are feeling paranoid.  Be aware though thatany compilation problems which affect bzip2 will also affect spewG.c,alas.Known problems as of 1.0pre8:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* HP/UX 10.20 and 11.00, using gcc (2.7.2.3 and 2.95.2):  A large  number of warnings appear, including the following:     /usr/include/sys/resource.h: In function `getrlimit':     /usr/include/sys/resource.h:168:         warning: implicit declaration of function `__getrlimit64'     /usr/include/sys/resource.h: In function `setrlimit':     /usr/include/sys/resource.h:170:         warning: implicit declaration of function `__setrlimit64'  This would appear to be a problem with large file support, header  files and gcc.  gcc may or may not give up at this point.  If it  fails, you might be able to improve matters by adding      -D__STDC_EXT__=1  to the BIGFILES variable in the Makefile (ie, change its definition  to     BIGFILES=-D_FILE_OFFSET_BITS=64 -D__STDC_EXT__=1  Even if gcc does produce a binary which appears to work (ie passes  its self-tests), you might want to test it to see if it works properly  on large files.* HP/UX 10.20 and 11.00, using HP's cc compiler.  No specific problems for this combination, except that you'll need to  specify the -Ae flag, and zap the gcc-specific stuff  -Wall -Winline -O2 -fomit-frame-pointer -fno-strength-reduce.  You should retain -D_FILE_OFFSET_BITS=64 in order to get large  file support -- which is reported to work ok for this HP/UX + cc  combination.* SunOS 4.1.X.  Amazingly, there are still people out there using this venerable old  banger.  I shouldn't be too rude -- I started life on SunOS, and  it was a pretty darn good OS, way back then.  Anyway:     SunOS doesn't seem to have strerror(), so you'll have to use     perror(), perhaps by doing adding this (warning: UNTESTED CODE):     char* strerror ( int errnum )     {        if (errnum < 0 || errnum >= sys_nerr)           return "Unknown error";         else           return sys_errlist[errnum];     }   Or you could comment out the relevant calls to strerror; they're   not mission-critical.  Or you could upgrade to Solaris.  Ha ha ha!   (what??  you think I've got Bad Attitude?) * Making a shared library on Solaris.  (Not really a compilation  problem, but many people ask ...)    Firstly, if you have Solaris 8, either you have libbz2.so already  on your system, or you can install it from the Solaris CD.    Secondly, be aware that there are potential naming conflicts  between the .so file supplied with Solaris 8, and the .so file  which Makefile-libbz2_so will make.  Makefile-libbz2_so creates  a .so which has the names which I intend to be "official" as  of version 1.0.0 and onwards.  Unfortunately, the .so in  Solaris 8 appeared before I decided on the final names, so  the two libraries are incompatible.  We have since communicated  and I hope that the problems will have been solved in the next  version of Solaris, whenever that might appear.  All that said: you might be able to get somewhere  by finding the line in Makefile-libbz2_so which says  $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.1 $(OBJS)  and replacing with   ($CC) -G -shared -o libbz2.so.1.0.1 -h libbz2.so.1.0 $(OBJS)    If gcc objects to the combination -fpic -fPIC, get rid of  the second one, leaving just "-fpic".That's the end of the currently known compilation problems.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -