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

  • 相关阅读:
    [ZOJ1610]Count the Colors
    浅谈算法——线段树之Lazy标记
    浅谈算法——线段树
    [HEOI2013]Segment
    [JSOI2008]Blue Mary开公司
    [JSOI2016]扭动的回文串
    [BZOJ3790]神奇项链
    [BZOJ2565]最长双回文串
    [BZOJ2160]拉拉队排练
    [POI2010]Antisymmetry
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/13032353.html
Copyright © 2011-2022 走看看