如何在centos7中安装cmake
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在centos7中安装cmake相关的知识,希望对你有一定的参考价值。
参考技术A 1、centos可以yum 安装yum install cmake
2、可以编译安装
cmake-3.5.1.tar.gz
tar zxf cmake-3.5.1.tar.gz
cd cmake-3.5.1
./bootstrap && gmake && gmake install
3、cmake编译mysql实例
pushd mysql-5.5.31
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/var/lib/mysql \
-DMYSQL_USER=MySQL
make;
make install;本回答被提问者采纳
在 docker 容器中安装 CMake 时出错。找不到 PROTOBUF
【中文标题】在 docker 容器中安装 CMake 时出错。找不到 PROTOBUF【英文标题】:Error installing CMake in a docker container. Could not find PROTOBUF 【发布时间】:2019-04-04 01:44:45 【问题描述】:您好,我正在尝试构建一个运行 openpose 的 docker 映像。一切顺利,直到我必须编译我提供的源代码......
我运行下面的 Dockerfile,它会抛出以下错误:
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find Protobuf (missing: PROTOBUF_LIBRARY PROTOBUF_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.5/Modules/FindProtobuf.cmake:308 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:388 (find_package)
我尝试执行以下操作:Could not find PROTOBUF Compiler 并通过 apt-get 安装 protobuf 但它不起作用。发生这种情况:
After this operation, 2321 kB of additional disk space will be used.
Do you want to continue? [Y/n] Abort.
The command '/bin/sh -c apt-get update && apt-get install protobuf-compiler' returned a non-zero code: 1
这是我的 Dockerfile:
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y libopencv-dev
WORKDIR src
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y git
RUN git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
WORKDIR /src/openpose/3rdparty
RUN rm -r caffe
RUN rm -r pybind11
RUN git clone https://github.com/BVLC/caffe.git
RUN git clone https://github.com/pybind/pybind11.git
WORKDIR /src/openpose/build
RUN apt-get update && apt-get -y install cmake
RUN cmake .. -DBUILD_CAFFE=OFF -DGPU_MODE=CPU_ONLY
RUN make
RUN make install
RUN make -j`nproc`
这个问题发生在 RUN cmake .. 行。
错误的完整日志如下:
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GCC detected, adding compile flags
-- Building CPU Only.
-- Building with MKL support.
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Could NOT find GFlags (missing: GFLAGS_INCLUDE_DIR GFLAGS_LIBRARY)
-- Could NOT find Glog (missing: GLOG_INCLUDE_DIR GLOG_LIBRARY)
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find Protobuf (missing: PROTOBUF_LIBRARY PROTOBUF_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.5/Modules/FindProtobuf.cmake:308 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:388 (find_package)
-- Configuring incomplete, errors occurred!
See also "/src/openpose/build/CMakeFiles/CMakeOutput.log".
See also "/src/openpose/build/CMakeFiles/CMakeError.log".
The command '/bin/sh -c cmake .. -DBUILD_CAFFE=OFF -DGPU_MODE=CPU_ONLY -DBLAS=open' returned a non-zero code: 1
【问题讨论】:
【参考方案1】:在您尝试运行cmake
命令之前,您的 Dockerfile 需要安装 Protobuf。
这一行:
RUN apt-get update && apt-get -y install cmake
应该是:
RUN apt-get update && apt-get -y install cmake protobuf-compiler
如果还有其他缺少的依赖项,您需要确保在使用之前也安装了这些依赖项。
【讨论】:
嘿,这行没问题,但错误再次发生...我将尝试在 cmake 配置中硬编码 PROTOBUF_LIBRARY 和 PROTOBUF_INCLUDE_DIR 的路径,但我不知道这些可能在哪里...你能帮帮我吗?【参考方案2】:想通了:
在代码的开头包含这一行并且它起作用了。
RUN apt install -y libprotobuf-dev protobuf-compiler
发生了许多与此类似的其他错误...大多数情况下,解决方案都是相同的,只是更改了要安装的包的名称。
如果有人遇到类似问题,这是我在这个问题中学到的一个技巧。我使用 ubuntu 16.04 作为“操作系统”,因此询问 ubuntu 是否为我的问题提供了大部分答案。
现在这似乎很明显,但有人可能会遇到这个......
【讨论】:
以上是关于如何在centos7中安装cmake的主要内容,如果未能解决你的问题,请参考以下文章