解决CMake Error: The source directory "*" does not appear to contain CMakeLists.txt.

满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述解决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


解决CMake Error: The source directory "*" does not appear to contain CMakeLists.txt.

文章图片



然后下载 再安装


总结一下,说那么多废话,终归,最可能你就是所下载的版本可能对,所带来的错误。
在此还强调一下,如果你的版本确认是正确的,但是还是出现问题,建议-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):
【解决CMake Error: The source directory "*" does not appear to contain CMakeLists.txt.】  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 还是报错!


解决方法如下
解决CMake Error: The source directory "*" does not appear to contain CMakeLists.txt.

文章图片

看见 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

来源:  http://zhongyilin.blog.51cto.com/5389262/1369361

    推荐阅读