有谁知道如何跨ARM编译OpenSSH?这就是我所做的:
首先,我已经下载了Zlib源代码,解压缩它,构建它并使用以下命令行安装它:
# ./configure --prefix=/usr/local/cross/arm
# make
# make install
Run Code Online (Sandbox Code Playgroud)
但是当我尝试为ARM目标板编译OpenSSH时,它会在此./configure过程中给出错误"zlib missing" :
# sudo LDFLAGS=-L/usr/local/cross/arm/lib CC=arm-none-linux-gnueabi-gcc PATH=$PATH:/home/arishop/arm-tool-chain/arm-fsl-linux-gnueabi/bin/ ./configure --host=arm-linux --with-zlib=/usr/local/cross/arm/ --prefix=/usr/local/cross/arm/openssh
Run Code Online (Sandbox Code Playgroud) System.IO.Compression.GZipStream或System.IO.Compression.Deflate与zlib压缩兼容吗?
如何在C++中读/写gzip文件?
这里的iostream包装类看起来不错,这是一个简单的用法示例:
gz::igzstream in(filename);
std::string line;
while(std::getline(in, line)){
std::cout << line << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
但我无法真正链接它(虽然我有/usr/lib/libz.a).一个简单的
g++ test-gzstream.cpp -lz
Run Code Online (Sandbox Code Playgroud)
不这样做(undefined reference to gz::gzstreambase::~gzstreambase()).
我似乎无法正确安装zlib,我在Ubuntu10.4上从源代码安装了Python
'######## edit #####################
bobince和Luper帮忙.
确保安装这些软件包,然后重新编译Python:
sudo aptitude install zlib1g-dev libreadline6-dev libdb4.8-dev libncurses5-dev
'##################### ############
安装后,我尝试安装setuptools.py
$ sh setuptools-0.6c11-py2.7.egg
Traceback (most recent call last):
File "<string>", line 1, in <module>
zipimport.ZipImportError: can't decompress data; zlib not available
Run Code Online (Sandbox Code Playgroud)
然后我安装了zlib:
$ sudo aptitude install zlibc
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
The following NEW packages will be installed:
zlibc
0 packages upgraded, 1 newly installed, 0 to remove and …Run Code Online (Sandbox Code Playgroud) 我正在使用Windows 7下的bjam编译提升(64位 - 应该是无关紧要的)
D:\development\boost\boost_1_44\libs\iostreams\build>bjam stage ^
--toolset=msvc-10.0 link=static ^
--build-type=complete ^
-s ZLIB_SOURCE=C:\zlib125-dll ^
-s ZLIB_LIBPATH=C:\zlib125-dll\lib ^
-s ZLIB_INCLUDE=C:\zlib125-dll\include ^
-s ZLIB_BINARY=C:\zlib125-dll
Run Code Online (Sandbox Code Playgroud)
但我只能得到
stage/libboost_iostreams-vc100-mt-gd-1_44.lib
bin.v2/libs/iostreams/build/msvc-10.0/debug/threading-multi/boost_iostreams-vc100-mt-gd-1_44.dll
bin.v2/libs/iostreams/build/msvc-10.0/debug/threading-multi/boost_iostreams-vc100-mt-gd-1_44.lib
bin.v2/libs/iostreams/build/zlib/msvc-10.0/debug/threading-multi/boost_zlib-vc100-mt-gd-1_44.dll
bin.v2/libs/iostreams/build/zlib/msvc-10.0/debug/threading-multi/boost_zlib-vc100-mt-gd-1_44.lib
Run Code Online (Sandbox Code Playgroud)
但是stage/libboost_zlib-vc100-mt-gd-1_44.lib失踪了.
我编译错了吗?
当我尝试运行我的项目,该项目与boost和自编译的boost/thread库运行良好时,当我包含boost zlib的东西时,我得到以下错误
6>LINK : fatal error LNK1104: cannot open file 'libboost_zlib-vc100-mt-gd-1_44.lib'
Run Code Online (Sandbox Code Playgroud)
有谁知道我做错了什么?
我正在使用zlib来压缩文本数据流.文本数据以块的形式出现,并且对于每个块,deflate()调用flush,设置为flush Z_NO_FLUSH.一旦检索到所有块,deflate()就会在flush设置为的情况下调用Z_FINISH.
当然,deflate()每次调用都不会产生压缩输出.它在内部累积数据以实现高压缩率.那没关系!每次deflate()生成压缩输出时,该输出都会附加到数据库字段 - 这是一个缓慢的过程.
但是,一旦deflate()产生压缩数据,该数据可能不适合提供的输出缓冲区,deflate_out.因此需要多次调用deflate().这就是我想要避免的:
有没有办法让它
deflate_out总是足够大,以便deflate()每次它决定产生输出时,可以将所有压缩数据存储在其中?
笔记:
事先不知道未压缩数据的总大小.如上所述,未压缩数据以块的形式出现,压缩数据也以块的形式附加到数据库字段.
在包含文件中,zconf.h我发现了以下注释.那也许是我在找什么?即(1 << (windowBits+2)) + (1 << (memLevel+9))压缩数据deflate()可能产生的最大字节数(以字节为单位)?
/* The memory requirements for deflate are (in bytes):
(1 << (windowBits+2)) + (1 << (memLevel+9))
that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
plus a few kilobytes …Run Code Online (Sandbox Code Playgroud)在可能的DEFLATE压缩级别[0 .. 9]中,哪一个Deflater.DEFAULT_COMPRESSION与Java完全对应?在Java源代码中,我将其视为public static final int DEFAULT_COMPRESSION = -1;
我正在尝试在Python2.6下创建Python 2.7虚拟环境,我只是运行:
virtualenv --python=python27 #python27 correctly leads to my python installation in /opt/python2.7/bin/python
Run Code Online (Sandbox Code Playgroud)
Virtualenv失败并出现以下错误
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/virtualenv.py", line 17, in <module>
import zlib
ImportError: No module named zlib
Run Code Online (Sandbox Code Playgroud)
这让我很困惑,因为:
1)我显然有python zlib模块.当我在python 2.6的交互式环境中运行"import zlib"时,我可以轻松导入它.
2)我的系统中安装了zlib(centos):
[me@mycomp]# rpm -qa | grep zlib
zlib-1.2.3-29.el6.x86_64
zlib-1.2.3-29.el6.i686
zlib-devel-1.2.3-29.el6.x86_64
Run Code Online (Sandbox Code Playgroud)
关于这个问题还有另外两个问题,在这里和这里,在这两种情况下,人们根本没有安装zlib,这不是我的情况(我在python 2.6中有它,这应该没问题?),他们也使用pythonbrew这显然不再处于积极发展阶段.
为什么virtualenv找不到zlib?virtualenv如何查找其模块?我需要在Python2.7中安装zlib吗?或者重新安装Python2.7以便支持zlib?
旁注:请不要问我为什么使用旧版本,这不是我的选择.
我有一个压缩输出文件的脚本.问题是其中一个文件超过4Gigs.如何将我的脚本转换为使用ZIP64扩展而不是标准zip?
这是我目前如何拉链:
try:
import zlib
compression = zipfile.ZIP_DEFLATED
except:
compression = zipfile.ZIP_STORED
modes = { zipfile.ZIP_DEFLATED: 'deflated',
zipfile.ZIP_STORED: 'stored',
}
compressed_name = 'edw_files_' + datetime.strftime(date(), '%Y%m%d') + '.zip'
print 'creating archive'
zf = zipfile.ZipFile('edw_files_' + datetime.strftime(date(), '%Y%m%d') + '.zip', mode='w')
try:
zf.write(name1, compress_type=compression)
zf.write(name2, compress_type=compression)
zf.write(name3, compress_type=compression)
finally:
print 'closing'
zf.close()
Run Code Online (Sandbox Code Playgroud)
谢谢!法案
zlib ×10
c++ ×3
python ×3
gzip ×2
arm ×1
boost ×1
c ×1
c# ×1
compilation ×1
compression ×1
deflate ×1
gzipstream ×1
java ×1
memory ×1
openssh ×1
openssl ×1
performance ×1
qt ×1
setuptools ×1
virtualenv ×1
zip ×1
zipfile ×1