`
daigong
  • 浏览: 116703 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

解决64位Linux编译ruby错误(zlib需要重新登录)

阅读更多
转至
[url]http://apps.hi.baidu.com/share/detail/34732087[url]

/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC

/usr/local/lib/libz.a: could not read symbols: Bad value

一般是64 位 电脑才会出现。

解决方法如下:
cd zlib-1.2.3 //进入zlib目录

CFLAGS="-O3 -fPIC" ./configure   //使用64位元的方法进行编译

make

make install

make clean

上面操作演示结果如下:

[root@unix-server1 zlib-1.2.3]# CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib/
Checking for gcc...
Building static library libz.a version 1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.
[root@unix-server1 zlib-1.2.3]# make
gcc -O3 -fPIC -DUSE_MMAP   -c -o example.o example.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o adler32.o adler32.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o compress.o compress.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o crc32.o crc32.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o gzio.o gzio.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o uncompr.o uncompr.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o deflate.o deflate.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o trees.o trees.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o zutil.o zutil.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o inflate.o inflate.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o infback.o infback.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o inftrees.o inftrees.c
gcc -O3 -fPIC -DUSE_MMAP   -c -o inffast.o inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
gcc -O3 -fPIC -DUSE_MMAP -o example example.o -L. libz.a
gcc -O3 -fPIC -DUSE_MMAP   -c -o minigzip.o minigzip.c
gcc -O3 -fPIC -DUSE_MMAP -o minigzip minigzip.o -L. libz.a
[root@unix-server1 zlib-1.2.3]# make install
cp zlib.h zconf.h /usr/local/zlib//include
chmod 644 /usr/local/zlib//include/zlib.h /usr/local/zlib//include/zconf.h
cp libz.a /usr/local/zlib//lib
cd /usr/local/zlib//lib; chmod 755 libz.a
cd /usr/local/zlib//lib; if test -f libz.so.1.2.3; then \
          rm -f libz.so libz.so.1; \
          ln -s libz.so.1.2.3 libz.so; \
          ln -s libz.so.1.2.3 libz.so.1; \
          (ldconfig || true)  >/dev/null 2>&1; \
        fi
cp zlib.3 /usr/local/zlib//share/man/man3
chmod 644 /usr/local/zlib//share/man/man3/zlib.3
[root@unix-server1 zlib-1.2.3]# make clean
rm -f *.o *~ example minigzip \
           libz.* foo.gz so_locations \
           _match.s maketree contrib/infback9/*.o
[root@unix-server1 zlib-1.2.3]#
分享到:
评论

相关推荐

    Install Ruby on Linux

    在Linux系统上安装Ruby on Rails和Lighttpd是一项常见的任务,尤其对于开发者来说,搭建这样的环境是构建Web应用的基础。Ruby on Rails是一个基于Ruby语言的开源Web开发框架,而Lighttpd则是一款轻量级的HTTP服务器...

    Ruby on Rails安装包全集(Linux)

    在Linux环境下安装Ruby on Rails需要一系列的依赖包和步骤,本资源包提供了所需的所有组件,帮助用户在Linux系统上顺利构建RoR开发环境。 1. **readline-5.1.tar.gz**: 这是Readline库的源代码包,它提供了一种交互...

    linux下redmine安装笔记

    如果遇到因缺少zlib而引发的错误,可以尝试使用已安装的Ruby版本来安装: ```bash /usr/local/ruby/bin/gem install rails -v=2.3.5 ``` 在完成了上述所有步骤后,你就具备了在Linux环境中运行Redmine的基础。接...

    在Linux下部署的大致所有jar包

    例如,Redis可能需要OpenSSL支持,Ruby可能需要Zlib进行数据压缩,而Zookeeper可能与Nginx或Kafka协同工作以实现高可用性和负载均衡。同时,系统管理员还需要关注安全、性能优化和日志监控等方面,确保整个系统的...

    uWSGI的windows编译版本,内有编译截图,运行截图。

    在vygwin64中编译uWSGI,通常需要确保已安装必要的依赖,比如Python开发头文件、zlib、openssl等。编译步骤可能包括解压源码、配置、编译和安装。使用预编译的版本则省去了这一步,可以直接使用`uwsgi.exe`启动服务...

    ruby 2.2.7

    对于 Ruby 2.2.7,可能需要下载其源代码(即 `ruby-2.2.7.tar.gz`),然后解压、配置、编译和安装。 安装步骤大致如下: 1. 下载源代码包:`wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz` 2. ...

    linux下redmine安装及常见问题faq

    本文将详细介绍如何在Linux环境下,特别是Redhat Linux 5.5上安装Redmine 2.0及其相关组件,以及解决可能出现的问题。 **安装环境与所需软件** 在开始安装前,确保你的系统满足以下条件: - **操作系统**: Redhat ...

    openwrt详细编译流程及VM运行

    OpenWRT 编译流程及 VM 运行详解 OpenWRT 是一个嵌入式的 Linux 发行版,可以提供一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。本文将详细阐述 OpenWRT...

    Linux应用篇之Redis4.0.10集群部署.docx

    问题一:如果在安装`redis` gem时遇到`zlib`错误,按照以下步骤解决: 1. 安装`zlib-devel`:`yum -y install zlib-devel` 2. 回到`ruby`的`zlib`目录:`cd /data/pkgs/ruby-2.5.5/ext/zlib` 3. 运行`./extconf.rb`...

    gem install redis报错的解决方案

    解决这个问题的关键是安装`zlib-devel`(或相应的开发库),然后重新配置和安装Ruby环境以包含`zlib`。通过遵循上述步骤,开发者可以成功安装Redis gem,从而在Ruby项目中正常使用Redis。这个过程不仅适用于初学者,...

    redmine搭建手册(完整版)

    首先,安装zlib和openssl库,然后通过源代码编译安装Ruby,确保Ruby编译时链接了这些库。 2.1.1. 安装 zlib ```bash sudo apt-get install libz-dev ``` 2.1.2. 安装 openssl ```bash sudo apt-get install libssl-...

    linux 安装 redmine脚本

    为了安装Redmine,你需要一个支持Rails运行的环境,这通常意味着需要Ruby、RubyGems、Bundler以及一个数据库系统(如MySQL或PostgreSQL)。 1. **安装必备工具**: - 更新系统软件包列表:`sudo apt-get update` ...

    Git服务器端编译安装源码

    接下来是编译和安装过程,这需要确保系统已经安装了必要的依赖库,如curl、zlib、openssl、expat等。在Linux环境下,可以使用`apt-get`或`yum`命令来安装这些依赖。然后进入解压后的源码目录,执行以下命令: 1. `....

    linux安装redmine1.2.1.pdf

    3. 配置并编译安装Ruby: ``` ./configure --prefix=/usr/local/ruby make && make install ``` 4. 安装依赖库以确保Ruby正确运行: ``` yum -y install make openssl openssl-devel pcre pcre-devel libpng ...

    CentOS 6.3下编译安装Ruby 2.0笔记

    LINUX操作系统: CentOS6.3 64bit Ruby: ruby-2.0.0-p247 一.安装开发包(使用默认CENTOS更新源) 代码如下: # yum install openssl* openssl-devel zlib-devel gcc gcc-c++ make autoconf readline-devel curl-devel ...

    Bug管理工具-Redmine手把手部署实施

    Redmine是一款基于Web的项目管理工具,由...这个过程需要对Linux系统、Ruby编程语言、Web框架Rails以及数据库管理有一定的了解。通过细致的步骤和适当的故障排查,可以成功部署并运行Redmine作为有效的Bug管理平台。

    linux安装redmine_1.2.1.pdf

    在Linux系统中安装Redmine 1.2.1是一个涉及多步骤的过程,主要涉及到Ruby、RubyGems和Rails等组件的安装与配置。以下是详细的操作步骤: 1. **安装Ruby**: Redmine 1.2.1需要Ruby 1.8.7作为运行环境。首先,你...

    redis集群离线安装包.zip

    在本离线安装包"redis集群离线安装包.zip"中,主要包含了在Linux系统下构建Redis集群所需的各种组件。这个安装包适用于CentOS和RedHat这类基于RPM的Linux发行版,且整个安装过程无需网络环境,非常适合那些无法连接...

    gcc依赖文件.zip

    在Linux系统中,GCC(GNU Compiler Collection)是...正确安装这些依赖可以避免编译时出现错误,提高开发和调试的效率。在实际操作时,务必遵循正确的安装流程,并注意更新和维护这些依赖,以适应不断发展的软件环境。

    redmine3.3.1安装与常用插件安装.pdf

    在安装完依赖后,还需要从Ruby官方网站下载Ruby 2.3.1的源代码,并使用configure、make、make install的方式来编译安装Ruby。 RubyGems是Ruby的包管理器,类似于Python的pip或者Node.js的npm。通过RubyGems,可以...

Global site tag (gtag.js) - Google Analytics