Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake Error at /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:148 (message): Could NOT find Threads (missing: Threads_FOUND) #3880

Closed
supermanhuyu opened this issue Sep 5, 2017 · 6 comments
Labels
User 用于标记用户问题

Comments

@supermanhuyu
Copy link

supermanhuyu commented Sep 5, 2017

我想要在centos 7 上面源码安装paddle,下载了源码包 Paddle-0.10.0.tar.gz ,参照着 http://doc.paddlepaddle.org/develop/doc/getstarted/build_and_install/build_from_source_en.html#centos 这个官方链接做 ,然后在cmake 这一个步骤出现如下错误。

[root@node4 build]#cmake3 .. -DCMAKE_INSTALL_PREFIX=/usr/local/paddle -DWITH_TESTING=OFF -DWITH_SWIG_PY=OFF
-- Found Paddle host system: centos
-- Found Paddle host system's CPU: 16 cores
...
-- Could NOT find Protobuf (missing: Protobuf_INCLUDE_DIR) (Required is at least version "3.1")
...
-- Checking whether /usr/bin/gfortran supports Fortran 90
-- Checking whether /usr/bin/gfortran supports Fortran 90 -- yes
CMake Error at cmake/external/openblas.cmake:46 (message):
Cannot found gfortran library which it is used by openblas
Call Stack (most recent call first):

相关的安装包我都安装了的

[root@node4 build]#rpm -q protobuf
protobuf-2.5.0-8.el7.x86_64
[root@node4 build]#rpm -q protobuf-python
protobuf-python-2.5.0-8.el7.x86_64
[root@node4 build]#rpm -q gcc-gfortran
gcc-gfortran-4.8.5-4.el7.x86_64

[root@node4 build]#pip show protobuf
Name: protobuf
Version: 3.4.0
Summary: Protocol Buffers
Home-page: https://developers.google.com/protocol-buffers/
Author: protobuf@googlegroups.com
Author-email: protobuf@googlegroups.com
License: 3-Clause BSD License
Location: /usr/lib64/python2.7/site-packages
Requires: setuptools, six

请问这是什么原因呢?

@typhoonzero
Copy link
Contributor

cmake提示为:

Could NOT find Protobuf (missing: Protobuf_INCLUDE_DIR) (Required is at least version "3.1")

而您的系统安装的protobuf为(注意rpm安装一般需要安装devel包提供编译环境):

[root@node4 build]#rpm -q protobuf
protobuf-2.5.0-8.el7.x86_64

@supermanhuyu
Copy link
Author

supermanhuyu commented Sep 5, 2017

@typhoonzero 非常感谢. 我重新编译了一个版本的protobuf就解决了,但是我在编译paddle的时候 出现如下错误,

[ 97%] Built target paddle_gserver
Scanning dependencies of target protobuf_equal
Scanning dependencies of target paddle_pserver_main
Scanning dependencies of target paddle_merge_model
Scanning dependencies of target paddle_trainer
make[2]: *** No rule to make target `../third_party/install/glog/lib/libglog.a', needed by `python/paddle/trainer_config_helpers/tests/protobuf_equal'.  Stop.
make[2]: *** Waiting for unfinished jobs....
[ 98%] Building CXX object python/paddle/trainer_config_helpers/tests/CMakeFiles/protobuf_equal.dir/ProtobufEqualMain.cpp.o
make[2]: *** No rule to make target `../third_party/install/glog/lib/libglog.a', needed by `paddle/pserver/paddle_pserver_main'.  Stop.
make[2]: *** Waiting for unfinished jobs....
[ 98%] Building CXX object paddle/pserver/CMakeFiles/paddle_pserver_main.dir/ParameterServer2Main.cpp.o
make[2]: *** No rule to make target `../third_party/install/glog/lib/libglog.a', needed by `paddle/trainer/paddle_merge_model'.  Stop.
make[2]: *** Waiting for unfinished jobs....
make[2]: *** No rule to make target `../third_party/install/glog/lib/libglog.a', needed by `paddle/trainer/paddle_trainer'.  Stop.
make[2]: *** Waiting for unfinished jobs....
[ 98%] Building CXX object paddle/trainer/CMakeFiles/paddle_merge_model.dir/MergeModel.cpp.o
[ 98%] Building CXX object paddle/trainer/CMakeFiles/paddle_trainer.dir/TrainerMain.cpp.o
make[1]: *** [python/paddle/trainer_config_helpers/tests/CMakeFiles/protobuf_equal.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [paddle/pserver/CMakeFiles/paddle_pserver_main.dir/all] Error 2
make[1]: *** [paddle/trainer/CMakeFiles/paddle_merge_model.dir/all] Error 2
make[1]: *** [paddle/trainer/CMakeFiles/paddle_trainer.dir/all] Error 2
make: *** [all] Error 2

请问这个是如何解决呢?

@lcy-seso lcy-seso added the User 用于标记用户问题 label Sep 5, 2017
@typhoonzero
Copy link
Contributor

只看到这个报错,可以尝试删掉build下的文件重新编译一次。

make[2]: *** No rule to make target `../third_party/install/glog/lib/libglog.a', needed by `python/paddle/trainer_config_helpers/tests/protobuf_equal'.  Stop.

另外看下是否make还输出了其他的错误信息,一般多线程make的时候,错误的原因可能在前面。

@supermanhuyu
Copy link
Author

我重新make了几次也都失败了。我在一个Ubuntu 14 的容器里面安装出现如下错误:

`Singularity paddle-10-cpu.img:~/paddle/build> cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/paddle -DWITH_GPU=OFF
-- Found Paddle host system: ubuntu
-- Found Paddle host system's CPU: 16 cores
-- The CXX compiler identification is GNU 4.8.4
-- The C compiler identification is GNU 4.8.4
-- The Golang compiler identification is go1.9 linux/amd64
-- Check for working Golang compiler: /usr/local/go/bin/go
...
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
...
-- Mkldnn library: /root/paddle/build/third_party/install/mkldnn/lib/libmkldnn.so
-- Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR)
...
-- Performing Test C_COMPILER_SUPPORT_FLAG__Wnon_virtual_dtor
-- Performing Test C_COMPILER_SUPPORT_FLAG__Wnon_virtual_dtor - Failed
...
-- Performing Test C_COMPILER_SUPPORT_FLAG__Wdelete_non_virtual_dtor
-- Performing Test C_COMPILER_SUPPORT_FLAG__Wdelete_non_virtual_dtor - Failed
...
-- Performing Test C_COMPILER_SUPPORT_FLAG__Wno_error_parentheses_equality
-- Performing Test C_COMPILER_SUPPORT_FLAG__Wno_error_parentheses_equality - Failed
-- Performing Test CXX_COMPILER_SUPPORT_FLAG__Wno_error_parentheses_equality
-- Performing Test CXX_COMPILER_SUPPORT_FLAG__Wno_error_parentheses_equality - Failed
...
-- Paddle version is 0.10.0
-- Compile with MKLDNNMatrix
-- Compile with MKLDNNLayers and MKLDNNActivations
CMake Error at paddle/api/CMakeLists.txt:21 (INCLUDE):
include called with wrong number of arguments. include() only takes one
file.

CMake Error at paddle/api/CMakeLists.txt:56 (SWIG_ADD_MODULE):
Unknown CMake command "SWIG_ADD_MODULE".

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
Boost_INCLUDE_DIR (ADVANCED)
used as include directory in directory /root/paddle
used as include directory in directory /root/paddle/proto
used as include directory in directory /root/paddle/paddle/optimizer
used as include directory in directory /root/paddle/paddle
used as include directory in directory /root/paddle/paddle/cuda
used as include directory in directory /root/paddle/paddle/function
used as include directory in directory /root/paddle/paddle/utils
used as include directory in directory /root/paddle/paddle/utils/tests
used as include directory in directory /root/paddle/paddle/testing
used as include directory in directory /root/paddle/paddle/math
used as include directory in directory /root/paddle/paddle/math/tests
used as include directory in directory /root/paddle/paddle/parameter
used as include directory in directory /root/paddle/paddle/parameter/tests
used as include directory in directory /root/paddle/paddle/gserver
used as include directory in directory /root/paddle/paddle/gserver/tests
used as include directory in directory /root/paddle/paddle/pserver
used as include directory in directory /root/paddle/paddle/pserver/test
used as include directory in directory /root/paddle/paddle/trainer
used as include directory in directory /root/paddle/paddle/trainer/tests
used as include directory in directory /root/paddle/paddle/scripts
used as include directory in directory /root/paddle/paddle/string
used as include directory in directory /root/paddle/paddle/api

-- Configuring incomplete, errors occurred!
See also "/root/paddle/build/CMakeFiles/CMakeOutput.log".
See also "/root/paddle/build/CMakeFiles/CMakeError.log".
`

@supermanhuyu
Copy link
Author

supermanhuyu commented Sep 11, 2017

我这都编译到 100% 了,最后还是报了一个错误

`Scanning dependencies of target paddle_merge_model
[100%] Building CXX object paddle/trainer/CMakeFiles/paddle_trainer.dir/TrainerMain.cpp.o
[100%] Building CXX object python/paddle/trainer_config_helpers/tests/CMakeFiles/protobuf_equal.dir/ProtobufEqualMain.cpp.o
[100%] Building CXX object paddle/pserver/CMakeFiles/paddle_pserver_main.dir/ParameterServer2Main.cpp.o
[100%] Building CXX object paddle/trainer/CMakeFiles/paddle_merge_model.dir/MergeModel.cpp.o
[100%] Linking CXX executable protobuf_equal
Done processing ProtobufEqualMain.cpp
Total errors found: 0
[100%] Linking CXX executable paddle_pserver_main
../../../../../third_party/install/openblas/lib/libopenblas.a(lapacke_dgetri_work.o): In function `LAPACKE_dgetri_work':
lapacke_dgetri_work.c:(.text+0xe5): undefined reference to `dgetri_'
lapacke_dgetri_work.c:(.text+0x15a): undefined reference to `dgetri_'
../../../../../third_party/install/openblas/lib/libopenblas.a(lapacke_sgetri_work.o): In function `LAPACKE_sgetri_work':
lapacke_sgetri_work.c:(.text+0xe5): undefined reference to `sgetri_'
lapacke_sgetri_work.c:(.text+0x15a): undefined reference to `sgetri_'
collect2: error: ld returned 1 exit status
make[2]: *** [python/paddle/trainer_config_helpers/tests/protobuf_equal] Error 1
make[1]: *** [python/paddle/trainer_config_helpers/tests/CMakeFiles/protobuf_equal.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[100%] Linking CXX executable paddle_trainer
Done processing TrainerMain.cpp
Total errors found: 0
[100%] Linking CXX executable paddle_merge_model
Done processing MergeModel.cpp
Total errors found: 0
../../../third_party/install/openblas/lib/libopenblas.a(lapacke_dgetri_work.o): In function `LAPACKE_dgetri_work':
lapacke_dgetri_work.c:(.text+0xe5): undefined reference to `dgetri_'
lapacke_dgetri_work.c:(.text+0x15a): undefined reference to `dgetri_'
../../../third_party/install/openblas/lib/libopenblas.a(lapacke_sgetri_work.o): In function `LAPACKE_sgetri_work':
lapacke_sgetri_work.c:(.text+0xe5): undefined reference to `sgetri_'
lapacke_sgetri_work.c:(.text+0x15a): undefined reference to `sgetri_'
collect2: error: ld returned 1 exit status
make[2]: *** [paddle/pserver/paddle_pserver_main] Error 1
make[1]: *** [paddle/pserver/CMakeFiles/paddle_pserver_main.dir/all] Error 2
../../../third_party/install/openblas/lib/libopenblas.a(lapacke_dgetri_work.o): In function `LAPACKE_dgetri_work':
lapacke_dgetri_work.c:(.text+0xe5): undefined reference to `dgetri_'
lapacke_dgetri_work.c:(.text+0x15a): undefined reference to `dgetri_'
../../../third_party/install/openblas/lib/libopenblas.a(lapacke_sgetri_work.o): In function `LAPACKE_sgetri_work':
lapacke_sgetri_work.c:(.text+0xe5): undefined reference to `sgetri_'
lapacke_sgetri_work.c:(.text+0x15a): undefined reference to `sgetri_'
collect2: error: ld returned 1 exit status
make[2]: *** [paddle/trainer/paddle_trainer] Error 1
make[1]: *** [paddle/trainer/CMakeFiles/paddle_trainer.dir/all] Error 2
../../../third_party/install/openblas/lib/libopenblas.a(lapacke_dgetri_work.o): In function `LAPACKE_dgetri_work':
lapacke_dgetri_work.c:(.text+0xe5): undefined reference to `dgetri_'
lapacke_dgetri_work.c:(.text+0x15a): undefined reference to `dgetri_'
../../../third_party/install/openblas/lib/libopenblas.a(lapacke_sgetri_work.o): In function `LAPACKE_sgetri_work':
lapacke_sgetri_work.c:(.text+0xe5): undefined reference to `sgetri_'
lapacke_sgetri_work.c:(.text+0x15a): undefined reference to `sgetri_'
collect2: error: ld returned 1 exit status
make[2]: *** [paddle/trainer/paddle_merge_model] Error 1
make[1]: *** [paddle/trainer/CMakeFiles/paddle_merge_model.dir/all] Error 2
make: *** [all] Error 2
`

@The-K-Man
Copy link

wow

heavengate pushed a commit to heavengate/Paddle that referenced this issue Aug 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
User 用于标记用户问题
Projects
None yet
Development

No branches or pull requests

4 participants