php编译错误

首先来一个最常见的就是configure: error: libjpeg.(a|so) not found
我都安装了的,为什么就找不到呢?找不到其实就应试想到它的搜索位置里面是没有的,要不然才不会说not found
原因是我们大部分一些软件只要rpm -qa | grep *
这时下面就有两个重复的的软件
[root@localhost php-5.3.4]# rpm -qa |grep jpeg
libjpeg-6b-37
libjpeg-6b-37
libjpeg-devel-6b-37
32位和64位的都装了。你可以强制删除两个包,再重装64位的包。rpm –allmatches –nodeps这种方法真是损系统又损你.有时候强制执行的东西也会随便把lib中的一些包给强制删了..所以我认为不建议这么做,重复就让它重复吧,没关系的!
要解决问题就是它没找到,我安装了的,那我得去找找看它到底是放那里去了
[root@localhost php-5.3.4]# locate libjpeg.so
/usr/lib64/libjpeg.so.62
/usr/lib64/libjpeg.so.62.0.0
/usr/lib64/libjpeg.so
/usr/lib/libjpeg.so
[root@localhost php-5.3.4]# locate libjpeg.a
/usr/lib64/libjpeg.a
/data0/software/jpeg-6b/libjpeg.a
[root@localhost php-5.3.4]#
我们在编译的时候经常看到一个库的文件,一般就是以.a,.so等名字的,尝试的搜索搜索,不行就模糊搜索!
通过上面的搜索其实就知道一些原因了,configure一般的搜索编译路径为/usr/lib/下,因为php默认就在/usr/lib/下找相关库文件,而x64机器上是在:/usr/lib64.这时你就可以直接把需要的库文件从/usr/lib64中拷贝到/usr/lib/中去就可以了.
那么记得要在configure前执行如下的命令:
cp -frp /usr/lib64/libjpeg.* /usr/lib/
usr/bin/install: cannot create regular file `/usr/local/man/man1/cjpeg.1’: No such file or directory
make: * [install] Error 1
提示找不到目录。既然电脑找不到,咱们人脑可以找嘛,自己先创建先
mkdir /usr/local/man
mkdir /usr/local/man1 创建完了再来
make install (没报错就成功)
configure: error: libjpng.(a|so) not found
其实也是和刚才的一样.
cp -frp /usr/lib64/libpng* /usr/lib/
configure: error: Cannot find ldap libraries in /usr/lib.
cp -frp /usr/lib64/libldap* /usr/lib/

猜你喜欢

转载自blog.csdn.net/u012587734/article/details/80525516