zoukankan      html  css  js  c++  java
  • 解决CMake Error: The source directory "*" does not appear to contain CMakeLists.txt.

    Hi 大家好,我是钟义林,昨儿个安装mysql,遇到了几个问题,现在打算把问题的解决方法写出来,和大家分享一下,这次我就不截图了,下面大家一起看一下

    问题:一、CMake Error: The source directory "/opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64" does not appear to contain CMakeLists.txt. 下面是我从crt里copy出来的

    有必要说明一点,我用的系统是centos

    Linux localhost.zidonghua1 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 23:51:20 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    ===============================================================================

    [root@Evil mysql-5.7.3-m13-linux-glibc2.5-x86_64]# cmake .

    CMake Error: The source directory "/opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64" does not appear to contain CMakeLists.txt.

    Specify --help for usage, or press the help button on the CMake GUI.

    [root@Evil mysql-5.7.3-m13-linux-glibc2.5-x86_64]# pwd

    /opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64


    在解决这个问题前,请允许我吐槽儿一番,我先是在google搜索和搜狗搜索上找了一下(百度基本不靠谱,经过确实,依然是不靠谱),没有一个可解决的方法,可能是我没找到,但确实没有,n多的回答是 你没有在mysql的安装目录里,pwd指令已经很清楚的说明了我就在mysql的目录中,可就是不行。后来我在mysql的官方网站上也没找到解决方法,最终我借助了“强大”的google翻译,把官网上的内容一个个的copy进google翻译里进行翻译,最终我解决了这个问题。吐槽到此结束吧。


    首先要多说一下,大家一般去mysql的官方网站的时候,都会下载社区版,因为mysql被oracle收购后,除了社区版都需要付费。所有大家都会下载 mysql community server *.*.** 对吧,这里我就谈如何注册一个账号了,下载前会在 select platform:这里选择要下载的版本。linux - Generic 这个选项所有下载下来的包很大,而且还没法用,这里说明一下,也行是我不会用,不会装。


    解决方法如下,还在http://dev.mysql.com/downloads/mysql/*.*heml#downloads 这个网页中(我这这个网页打不开哦*.*是你要下载的版本号) 在select platform 里选择 source code


    wKiom1MYNtPAngoeAAEvc7-iqVw085.jpg


    然后下载 再安装


    总结一下,说那么多废话,终归,最可能你就是所下载的版本可能对,所带来的错误。

    在此还强调一下,如果你的版本确认是正确的,但是还是出现问题,建议-yum卸载

    yum remove cmake* 把camke卸载 从官网上下载cmake编译安装


    #/bin/sh

    cd /usr/local/src/

    wget http://wwwNaNake.org/files/v2.8/cmake-2.8.12.2.tar.gz

    tar zxvf cmake-2.8.12.2.tar.gz

    cd cmake-2.8.12.2

    ./configure

    Make

    Make install


    然后我有遇到另个问题。

    make: *** 没有指明目标并且找不到 makefile。 停止。

    我不可能没有装make,而且gcc、devel、libs等等我都有装。这个问题又是怎么回事呢?

    其实是这样的  cmake成功了就会生成makefile,使用make的时候系统会在当前目录找makefile

    如果cmake失败了呢,就不会有,但是你在编译貌似还不行,不得不说一下我的原因是因为

    - Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)

    CMake Error at cmake/readline.cmake:83 (MESSAGE):

     Curses library not found.  Please install appropriate package,


         remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

    Call Stack (most recent call first):

     cmake/readline.cmake:127 (FIND_CURSES)

     cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)

     CMakeLists.txt:354 (MYSQL_CHECK_READLINE)



    -- Configuring incomplete, errors occurred!

    See also


    原因就是

    package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

    我少了ncurses (你可以用 yum install ncurses ncurses-devel ncurses-libs 来进行安装)

    我当时有点拙急,我用的额方法是 yum install *ncurses* 其实一样的,这个不是问题,问题是make 还是报错!


    解决方法如下

    wKioL1MYPI_Ayw96AAFSsJF4bhk077.jpg

    看见 CMakeCache.txt 了吗? 删掉它,然后重新使用 cmake 开始编译mysql

    rm -rf CMakeCache.txt


    ===================================================================================


    写完这篇博文呢,我感觉自己有点二,也确实挺二的,能碰到这些问题,不应该为这些小问题纠结的

    好了,就当在吐槽一句吧


    下面我把 安装mysql的方式 给大家copy出来


    /cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DINSTALL_DATADIR=/usr/local/mysql/data/master -DSYSCONFDIR=/usr/local/mysql/etc  

    -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1  

    -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_USER=mysql

    -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock


    make && make install



    groupadd mysql

    shell> useradd -r -g mysql mysql

    useradd -g mysql mysql -s /bin/false

    chown -R mysql:mysql /usr/local/mysql

    mkdir /usr/local/mysql/etc



    shell> cd /usr/local/mysql

    shell> chown -R mysql .

    shell> chgrp -R mysql .

    shell> scripts/mysql_install_db --user=mysql

    shell> chown -R root .

    shell> chown -R mysql data

    shell> bin/mysqld_safe --user=mysql &


    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server




    cp support-files/my-default.cnf /usr/local/mysql/etc/my.cnf

    cp support-files/mysql.server /etc/init.d/mysqld-sh

    vi /usr/local/mysql/etc/my.cnf

     bind-address=

     socket =

     port = 3306

     user = mysql



    vi /etc/init.d/mysqld-sh

     basedir=

     datadir

     mysqld_pid_file_path=



    chmod +x /etc/init.d/mysqld-sh


    /usr/local/mysql/scripts/mysql_install_db

    --defaults-extra-file=/usr/local/mysql/etc/my.cnf

    --basedir=/usr/local/mysql

    --datadir=/usr/local/mysql

    --user=mysql



    /etc/init.d/mysqld-sh start


    /usr/local/mysql/bin/mysqladmin -u root password '你的密码'


    cp /usr/local/mysql/bin/mysql /bin/mysql

  • 相关阅读:
    好好的Timer居然有坑?
    你竟然用Integer作为synchronized的锁对象?
    是时候了解Java Socket底层实现了
    带你了解MyBatis一二级缓存
    Java利用反射排序
    用代码移动桌面图标(贪吃蛇)
    servlet上传文件+上传进度显示
    简书导航栏实现
    iPhone手机屏幕尺寸(分辨率)
    iOS深拷贝浅拷贝
  • 原文地址:https://www.cnblogs.com/youyuanjuyou/p/8258616.html
Copyright © 2011-2022 走看看