js333 > 计算机互联网 > 7一键包失败的解决方法,Client找不到库libjpeg和

原标题:7一键包失败的解决方法,Client找不到库libjpeg和

浏览次数:147 时间:2019-11-03

准备在家里弄个NAS+WEB服务器,选择了Ubuntu 11.04+Lnmp 一键包

编译microwindows-0.92时,遇到一些依赖问题,记录下来,以便来着参详

iNodeClient在Ubuntu 10.04时,直接运行install.sh后便安装成功。在Ubuntu 12.04的版本,安装后双击iNodeClient后却无法运行。重装后问题依旧。于是使用命令行来运行。提示说libjpeg.so.62 not found。

Ubuntu 14.04 LST安装GCC 4.1.2

由于编译源码软件需要在Ubuntu 14.04 LST用到gcc4.1.2版本,但是本机已经安装有gcc4.8.4,下载gcc4.1.2源码编译总会出现运行找不到库文件错误,或者i386和x86_64不兼容问题,网上都有相似问题的解答,最终安装成功。

  1. 下载&解压源码

    $ wget $ tar xvjf gcc-4.1.2.tar.bz2

  2. 安装依赖库, 以及软件

    $ sudo apt-get install libc6-dev libgmp-dev libmpfr-dev texinfo

  3. 为头文件以及所需库添加链接
    添加如下链接, 这取决于你的 Ubuntu 系统架构, 如果你使用的是64位的ubuntu系统应当使用x86_64-linux-gnu替代i386-linux-gnu

    $ cd /usr/include $ sudo ln -s i386-linux-gnu/bits bits $ sudo ln -s i386-linux-gnu/gnu gnu $ sudo ln -s i386-linux-gnu/sys sys $ sudo ln -s i386-linux-gnu/asm asm $ cd /usr/lib $ sudo ln -s i386-linux-gnu/crt1.o crt1.o $ sudo ln -s i386-linux-gnu/crti.o crti.o $ sudo ln -s i386-linux-gnu/crtn.o crtn.o

  4. 编译gcc

    $ cd gcc-4.1.2 $ mkdir build $ cd build $ ../configure --prefix=/usr/local --program-prefix=sse- --libexecdir=/usr/local/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --disable-multilib --enable-languages=c,c++ $ make bootstrap

如果出现了如下错误:

WARNING: `makeinfo’ is missing on your system. You should only need it
if you modified a `.texi’ or `.texinfo’ file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make’ (AIX,
DU, IRIX). You might want to install the `Texinfo’ package or
the `GNU make’ package. Grab either from any GNU archive site.

请使用以下命令编译:

$ make bootstrap MAKEINFO=makeinfo
  1. 安装gcc

    $ make install $ cd /usr/local/bin $ ll gcc

看到类似以下几个文件, 安装就完成了

i686-pc-linux-gnu-gcc-4.1.2 i686-pc-linux-gnu-ssegcc ssegcc ssegccbug

Linux升级GCC 4.8.1清晰简明教程(Ubuntu 12.04 64位版为例)   

Ubuntu下Vim+GCC+GDB安装及使用  

Ubuntu下两个GCC版本切换  

CentOS6.5升级手动安装GCC4.8.2   

GCC 的详细介绍:请点这里

本文永久更新链接地址:

14.04 LST安装GCC 4.1.2 由于编译源码软件需要在Ubuntu 14.04 LST用到gcc4.1.2版本,但是本机已经安装有gcc4.8.4,下载gcc4.1.2源码编译总会出现运...

但是反复安装了数次,包括Ubuntu 11.04桌面版和服务器版,死活装不上,php-fpm一直安装失败,百度了很多(准确性越来越差了),一直没解决。昨天心血来潮想要把这个弄好,听取开发者的建议,手动编译安装之,结果提示缺少支持库PNG|JPG(configure: error: libjpeg.(a|so) not found.),在论坛里面找到解决方法:

# ./xconfigure
-bash: ./xconfigure: /usr/bin/wish: bad interpreter: No such file or directory

于是上网找资料,找到这篇文章,发现文中的方法有点复杂。他的方法除了常规的查找依赖性、定位库文件,还需要把库文件复制到当前目录,再建立软链接,略显繁琐。其实只要直接建立软链接即可,不需要做复制的动作。另外,作者过度使用sudo,这是不太好的习惯哦。

在php编译安装脚本之前增加如下两行:

# wish
The program 'wish' can be found in the following packages:
 * tk
 * tk8.4
 * tk8.5
 * tk8.3
Try: apt-get install <selected package>
# apt-get  install   tk8.5
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
  tcl8.5
Suggested packages:
  tclreadline
The following NEW packages will be installed:
  tcl8.5 tk8.5
0 upgraded, 2 newly installed, 0 to remove and 211 not upgraded.
Need to get 2,013 kB of archives.
After this operation, 7,737 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 natty/main tcl8.5 i386 8.5.9-2 [1,051 kB]
Get:2 natty/main tk8.5 i386 8.5.9-2 [962 kB]                                                                               
Fetched 2,013 kB in 2min 16s (14.7 kB/s)                                                                                                                        
Selecting previously deselected package tcl8.5.
(Reading database ... 138814 files and directories currently installed.)
Unpacking tcl8.5 (from .../tcl8.5_8.5.9-2_i386.deb) ...
Selecting previously deselected package tk8.5.
Unpacking tk8.5 (from .../tk8.5_8.5.9-2_i386.deb) ...
Processing triggers for man-db ...
Setting up tcl8.5 (8.5.9-2) ...
Setting up tk8.5 (8.5.9-2) ...
update-alternatives: using /usr/bin/wish8.5 to provide /usr/bin/wish (wish) in auto mode.
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

总结一下我的做法先。

64

 

  1. 发现不满足的依赖性。假设iNode安装的目录是<inode>:

代码:

 

www.linuxidc.com @linuxidc~ ldd <inode>/iNodeClient | grep 'not found' 

ln -s /usr/lib/x86_64-linux-gnu/libpng* /usr/lib/

1. error: jpeglib.h jerror.h No such file or directory 没有那个文件或目录

jpeg.cc:19:21: error: jpeglib.h: 没有那个文件或目录
jpeg.cc:20:20: error: jerror.h: 没有那个文件或目录

解决安装libjpeg:
新立得软件包管理器->libjpeg62-dev

 

这行代码的作用有二。一是寻找运行iNodeClient时不满足的依赖关系;二是看iNodeClient依赖的库所在的位置(因为可能会在多个地方存在不同的库)。在我的机器上,发现有两个库是找不到的,一个是libjpeg.so.62,另一个是libtiff.so.3。链接是这两个库wikipedia的介绍。

ln -s /usr/lib/x86_64-linux-gnu/libjpeg* /usr/lib/

2. error: png.h No such file or directory 没有那个文件或目录

error: png.h: 没有那个文件或目录

解决安装libpng:
新立得软件包管理器->libpng12-dev

3.error:ft2build.h: No such file or directory

sudo apt-get install libxft2-dev

  1. make[1]: *** No rule to make target `/usr/lib/libjpeg.so', needed by `/home/allen/share/ui/microwindows-0.92/src/bin/nano-X'.  Stop.
    make: *** [subdir-/home/allen/share/ui/microwindows-0.92/src/nanox] Error 2

这是一个笨办法,  实际上应该使用修改链接库搜索路径的办法

临时解决办法

# ln -s /usr/lib/i386-linux-gnu/libpng.so  libpng.so
# ln -s /usr/lib/i386-linux-gnu/lib.so  libpng.so
Display all 206 possibilities? (y or n)
# ln -s /usr/lib/i386-linux-gnu/libz.a  libz.a
# ls /usr/lib/i386-linux-gnu/libz.a
/usr/lib/i386-linux-gnu/libz.a
# cd ../local/lib/
# ln -s /usr/lib/i386-linux-gnu/libfreetype.a  libfreetype.a

make 通过

另外,发现iNodeClient库依赖都存在于/usr/lib/i386-linux-gnu/这个目录(我安装的是普通的32位版本,其他版本可能不同)。

32

2. 看本地是否有这些库。因为操作系统版本的更新,附带的库也有可能更新。这会带来库版本名字的改变,而这有可能是依赖性“不满足”的一个原因。这种“不满足”是名字不同带来的,其实较新版本的库是存在的。下面的命令就是查找本机同名库的位置。

代码:

www.linuxidc.com @linuxidc~ locate libjpeg

ln -s /usr/lib/i386-linux-gnu/libpng* /usr/lib/

发现本地真的有这些库。并且在/usr/lib/i386-linux-gnu/这个目录下存在。

ln -s /usr/lib/i386-linux-gnu/libjpeg* /usr/lib/

3. 建立软链接。在/usr/lib/i386-linux-gnu/目录下有两个libjpeg文件,一个是libjpeg.so.8,另一个是libjpeg.so.8.0.2。之前玩过一下LFS,经验告诉我libjpeg.so.8是到libjpeg.so.8.0.2的软链接。建立它可能是为了版本的小更新不会影响程序对库的使用。所以我选择链接到libjpeg.so.8,获取这种小小的便利啦。而这句也是唯一需要用到sudo获取权限的地方。

金沙js333娱乐场 1

www.linuxidc.com @linuxidc~ sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so.8 /usr/lib/i386-linux-gnu/libjpeg.so.62

通过这三步,就可以解决第一个库的问题了。

金沙js333娱乐场 ,第二个库的解决方法也是一样的。下面是代码。

www.linuxidc.com @linuxidc~ sudo ln -s /usr/lib/i386-linux-gnu/libtiff.so.4 /usr/lib/i386-linux-gnu/libtiff.so.3 

把依赖性问题解决完以后,iNodeClient就可以使用了。

金沙js333娱乐场 2

本文由js333发布于计算机互联网,转载请注明出处:7一键包失败的解决方法,Client找不到库libjpeg和

关键词:

上一篇:http协议的SVN服务器搭建,服务器端安装

下一篇:没有了