zoukankan      html  css  js  c++  java
  • pam_mysql编译过程排错

    1、报错configure: error: Cannot locate mysql client library. Please check your mysql installation
    安装一个包就可以了

    dnf install MariaDB-devel
    

    上面这个包名MariaDB-devel,取决于你得MySQL类型,我这里安装的是mariadb,因此我就安装MariaDB-devel就可以了。
    2、报错

    [root@localhost pam_mysql-0.7RC1]# make
    /bin/sh ./libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/security -I/usr/include  -g -O2  -g -O2 -I/usr/include/mysql -I/usr/include/mysql/mysql     -c pam_mysql.c
    mkdir .libs
     gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/security -I/usr/include -g -O2 -g -O2 -I/usr/include/mysql -I/usr/include/mysql/mysql -c pam_mysql.c  -fPIC -DPIC -o .libs/pam_mysql.o
    pam_mysql.c: In function 'pam_mysql_converse':
    pam_mysql.c:3192:4: warning: passing argument 2 of 'conv->conv' from incompatible pointer type [enabled by default]
        conv->appdata_ptr))) {
        ^
    pam_mysql.c:3192:4: note: expected 'const struct pam_message **' but argument is of type 'struct pam_message **'
    /bin/sh ./libtool --mode=link gcc  -g -O2 -I/usr/include/mysql -I/usr/include/mysql/mysql      -o pam_mysql.la -rpath /lib/security/ -module -avoid-version pam_mysql.lo  -L/usr/lib64/ -lmariadb -lssl -lcrypto    
    gcc -shared  .libs/pam_mysql.o  -L/usr/lib64/ -lmariadb -lssl -lcrypto  -Wl,-soname -Wl,pam_mysql.so -o .libs/pam_mysql.so
    /usr/bin/ld: cannot find -lmariadb
    collect2: error: ld returned 1 exit status
    make: *** [pam_mysql.la] Error 1
    

    以后遇到这种错误/usr/bin/ld: cannot find -lmariadb,有一个解决技巧。就找这一行错误的上面一行内容,也就是gcc -shared .libs/pam_mysql.o -L/usr/lib64/ -lmariadb -lssl -lcrypto -Wl,-soname -Wl,pam_mysql.so -o .libs/pam_mysql.so
    也就是运行这个命令时报错了,那咱们现在看如何解决这个错误。
    lmariadb,其实就是这个库名libmariadb.so开头的库名。直接放在/usr/lib64目录下的库,都是共享库,如果不是的话,则是/usr/lib64/xxx这样的路径来存放的,因此我们现在要做的就是下载这个库。

    [root@localhost pam_mysql-0.7RC1]# dnf install MariaDB-shared
    

    这样子就可以了,。安装完之后,你再单独执行报错的哪个命令gcc -shared .libs/pam_mysql.o -L/usr/lib64/ -lmariadb -lssl -lcrypto -Wl,-soname -Wl,pam_mysql.so -o .libs/pam_mysql.so,就不会报错了,此时可以继续make编译了。
    参考这个博客学习vsftp的按照https://www.cnblogs.com/passzhang/articles/9131810.html

  • 相关阅读:
    php弱类型比较
    sql手注例子
    XFF等使用burp伪造请求
    XXE任意文件读取(当xml解析内容有输出时)
    本地文件包含LFI
    Java的访问修饰符的作用范围
    如何用“与”,“或”,“非” 实现 “异或”运算?
    windows下安装rabbitMQ教程(实战可用)
    注解@RequestParam与@RequestBody,@PathVariable的使用介绍
    maven install命令的用处(项目A依赖项目B,项目B发生修改,此时如果项目A打包引用修改后的B项目场景)
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/13032353.html
Copyright © 2011-2022 走看看