“cannot find -lssl; cannot find -lcrypto” when installing mysql-python?

前端 未结 4 2143
一个人的身影
一个人的身影 2020-12-01 07:40

I\'m struggling to install the mysql-python pip either systemwide or in a venv on Ubuntu 14.04 with MariaDB 10 installed. Also tried with MariaDB 5.5 and getting the same er

相关标签:
4条回答
  • 2020-12-01 08:17

    For Debian 9.x:

    apt install libssl-dev

    0 讨论(0)
  • 2020-12-01 08:19

    I meet the similar error on MacOS but there is no "/usr/bin/ld: cannot find -lssl" for me.

    Solved with the following steps:

    Step 1. Make sure you have installed openssl with homebrew.

    brew install openssl
    

    Step 2. In a terminal:

    export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/
    

    For Linux you can also try yum install your missing library and add them to LIBRARY_PATH.

    0 讨论(0)
  • 2020-12-01 08:20

    I did the same as you did, and still couldn't reproduce the issue:

    (venv)➜  src  pip install mysql-python==1.2.5
    Downloading/unpacking mysql-python==1.2.5
      Downloading MySQL-python-1.2.5.zip (108kB): 108kB downloaded
      Running setup.py (path:/home/braiam/src/venv/build/mysql-python/setup.py) egg_info for package mysql-python
    
    Installing collected packages: mysql-python
      Running setup.py install for mysql-python
        building '_mysql' extension
        x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing
        In file included from _mysql.c:44:0:
        /usr/include/mysql/my_config.h:439:0: warning: "HAVE_WCSCOLL" redefined
         #define HAVE_WCSCOLL
         ^
        In file included from /usr/include/python2.7/pyconfig.h:3:0,
                         from /usr/include/python2.7/Python.h:8,
                         from _mysql.c:29:
        /usr/include/x86_64-linux-gnu/python2.7/pyconfig.h:911:0: note: this is the location of the previous definition
         #define HAVE_WCSCOLL 1
         ^
        x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmariadbclient_r -lpthread -lz -lm -lssl -lcrypto -ldl -o build/lib.linux-x86_64-2.7/_mysql.so
    
    Successfully installed mysql-python
    Cleaning up...
    

    But, there were two messages that you have that I didn't, namely:

    /usr/bin/ld: cannot find -lssl
    /usr/bin/ld: cannot find -lcrypto
    

    Which if you did ld -lcrypto --verbose or ld -lssl --verbose wouldn't produce this results:

    ➜  src  ld -lcrypto --verbose | grep succeeded
    attempt to open //usr/lib/x86_64-linux-gnu/libcrypto.so succeeded
    ld: warning: cannot find entry symbol _start; not setting start address
    ➜  src  ld -lssl --verbose | grep succeeded
    attempt to open //usr/lib/x86_64-linux-gnu/libssl.so succeeded
    ld: warning: cannot find entry symbol _start; not setting start address
    

    So, to fix this just make sure you have installed the libssl-dev package which provides both libraries.

    0 讨论(0)
  • 2020-12-01 08:24

    For CentOS:

    sudo yum install openssl-devel
    
    0 讨论(0)
提交回复
热议问题