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 #8

Open
XiSheng1998 opened this issue Oct 8, 2019 · 8 comments
Open

cmake error #8

XiSheng1998 opened this issue Oct 8, 2019 · 8 comments

Comments

@XiSheng1998
Copy link

I downloaded Rocstar-legacy file and followed the instruction in RocstarQuickStart, downloaded all the required tpl and set all the environment variables, and I typed:

cmake $ROCSTAR_SOURCE

error occurred:

CMake Error at CMakeLists.txt:31 (add_subdirectory):
  The source directory

    /usr/local/src/Rocstar-legacy-master/IRAD

  does not contain a CMakeLists.txt file.


-- A library with BLAS API found.
-- A library with BLAS API found.
-- A library with LAPACK API found.
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
CMake Error at CMakeLists.txt:97 (MESSAGE):
  Doxygen is needed to build the documentation.


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:
HDF5_LIB

However, I installed libhdf5-dev but the cmake error still saying HDF5_LIB cannot be founded.
The Doxygen site http://illinoisrocstar.github.io/Rocstar/ also cannot be found, site not founded 404.
According to IRAD, IRAD file in Rocstar-legacy is empty, I downloaded IRAD file in IRAD-master and copy it to Rocstar-legacy/IRAD and cmake, the error occurs:

-- No build type selected, default to Release
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
CMake Error at IRAD/CMakeLists.txt:74 (MESSAGE):
  Doxygen is needed to build the documentation.


-- Configuring incomplete, errors occurred!
See also "/usr/local/src/Rocstar-legacy-master/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/Rocstar-legacy-master/CMakeFiles/CMakeError.log".

It seems that I need to download Doxygen file in http://illinoisrocstar.github.io/Rocstar/, but the site cannot be found.

@XiSheng1998
Copy link
Author

OK, I solved Doxygen issue, just by installed doxygen. but it still saying HDF5_LIB and METIS_INC are set to NOTFOUND, I installed libhdf5 and metis 4.0.3, but still doesn't work.

@msafdari1234
Copy link
Collaborator

msafdari1234 commented Oct 10, 2019 via email

@multiplemonomials
Copy link

multiplemonomials commented Oct 19, 2019

If you need it @XiSheng1998 we at RPL created a fork of Rocstar to address some of the CMake build system issues. Check it out here: https://github.com/USCRPL/Rocstar . Among other things it includes a bundled version of Metis, and removes the dependency on HDF5 (nothing actually uses it!).

@XiSheng1998
Copy link
Author

Seems like your HDF5 and METIS libraries are not installed in the standard
system path. You can manually specify path in your cmake cache. In the top
build directory, issue "ccmake .", find "HDF5_LIB" and "METIS_INC"
variables and manually set them.

OK, finally I solved the metis-notfound problem and HDF5-LIB-notfound problem. And cmake processing with no errors but a warning:

root@ubuntu:/usr/local/src# cmake $ROCSTAR_SOURCE
-- No build type selected, default to Release
-- A library with BLAS API found.
-- A library with BLAS API found.
-- A library with LAPACK API found.
-- Configuring done
CMake Warning (dev) at Rocmop/CMakeLists.txt:62 (add_dependencies):
  Policy CMP0046 is not set: Error on non-existent dependency in
  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  The dependency target "MSQ_MV" of target "Rocmop" does not exist.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /usr/local/src/Rocstar-legacy-master

however, when I try to run make -j, error occured:

In file included from /usr/local/src/Rocstar-legacy-master/IRAD/src/COMM.C:6:0:
/usr/local/src/Rocstar-legacy-master/IRAD/include/COMM.H: In member function ‘int IRAD::Comm::CommunicatorObject::GatherMO(std::vector<DataType>&, std::vector<DataType>&, std::vector<int>&, int)’:
/usr/local/src/Rocstar-legacy-master/IRAD/include/COMM.H:482:12: error: no match for ‘operator+=’ (operand types are ‘int’ and ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’)
      nrecv += nsi++;
      ~~~~~~^~~~~~~~
/usr/local/src/Rocstar-legacy-master/IRAD/include/COMM.H: In member function ‘int IRAD::Comm::CommunicatorObject::AllGatherMO(std::vector<DataType>&, std::vector<DataType>&, std::vector<int>&, int)’:
/usr/local/src/Rocstar-legacy-master/IRAD/include/COMM.H:529:12: error: no match for ‘operator+=’ (operand types are ‘int’ and ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’)
      nrecv += nsi++;
      ~~~~~~^~~~~~~~
/usr/local/src/Rocstar-legacy-master/IRAD/include/COMM.H: In member function ‘int IRAD::Comm::CommunicatorObject::GatherMOV(std::vector<DataType>&, std::vector<DataType>&, std::vector<int>&, int)’:
/usr/local/src/Rocstar-legacy-master/IRAD/include/COMM.H:561:12: error: no match for ‘operator+=’ (operand types are ‘int’ and ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’)
      nrecv += nsi++;
      ~~~~~~^~~~~~~~
/usr/local/src/Rocstar-legacy-master/IRAD/include/COMM.H: In member function ‘int IRAD::Comm::CommunicatorObject::AllGatherMOV(std::vector<DataType>&, std::vector<DataType>&, std::vector<int>&, int)’:
/usr/local/src/Rocstar-legacy-master/IRAD/include/COMM.H:593:12: error: no match for ‘operator+=’ (operand types are ‘int’ and ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’)
      nrecv += nsi++;
      ~~~~~~^~~~~~~~

IRAD/CMakeFiles/IRAD.dir/build.make:182: recipe for target 'IRAD/CMakeFiles/IRAD.dir/src/COMM.C.o' failed
make[2]: *** [IRAD/CMakeFiles/IRAD.dir/src/COMM.C.o] Error 1
CMakeFiles/Makefile2:1146: recipe for target 'IRAD/CMakeFiles/IRAD.dir/all' failed
make[1]: *** [IRAD/CMakeFiles/IRAD.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

It seems that something's wrong with IRAD, the cotent of /Rocstar-legacy/IRAD folder was downloaded from https://github.com/IllinoisRocstar/IRAD. Because there's something wrong with my Linux git submodule command, I have to download IRAD manually and Unzip to /Rocstar-legacy/IRAD folder, and then the error occurs.

@XiSheng1998
Copy link
Author

I also tried to make IRAD independently, cmake process seems ok but error occurs when it comes to make process:

root@ubuntu:/usr/local/src/irad# make
Scanning dependencies of target IRAD
[  4%] Building CXX object CMakeFiles/IRAD.dir/src/ComLine.C.o
[  9%] Building CXX object CMakeFiles/IRAD.dir/src/Parameters.C.o
[ 14%] Building CXX object CMakeFiles/IRAD.dir/src/Configuration.C.o
[ 19%] Building CXX object CMakeFiles/IRAD.dir/src/Profiler.C.o
[ 23%] Building CXX object CMakeFiles/IRAD.dir/src/UnixUtils.C.o
[ 28%] Building CXX object CMakeFiles/IRAD.dir/src/COMM.C.o
In file included from /usr/local/src/IRAD/src/COMM.C:6:0:
/usr/local/src/IRAD/include/COMM.H: In member function ‘int IRAD::Comm::CommunicatorObject::GatherMO(std::vector<DataType>&, std::vector<DataType>&, std::vector<int>&, int)’:
/usr/local/src/IRAD/include/COMM.H:482:12: error: no match for ‘operator+=’ (operand types are ‘int’ and ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’)
      nrecv += nsi++;
      ~~~~~~^~~~~~~~
/usr/local/src/IRAD/include/COMM.H: In member function ‘int IRAD::Comm::CommunicatorObject::AllGatherMO(std::vector<DataType>&, std::vector<DataType>&, std::vector<int>&, int)’:
/usr/local/src/IRAD/include/COMM.H:529:12: error: no match for ‘operator+=’ (operand types are ‘int’ and ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’)
      nrecv += nsi++;
      ~~~~~~^~~~~~~~
/usr/local/src/IRAD/include/COMM.H: In member function ‘int IRAD::Comm::CommunicatorObject::GatherMOV(std::vector<DataType>&, std::vector<DataType>&, std::vector<int>&, int)’:
/usr/local/src/IRAD/include/COMM.H:561:12: error: no match for ‘operator+=’ (operand types are ‘int’ and ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’)
      nrecv += nsi++;
      ~~~~~~^~~~~~~~
/usr/local/src/IRAD/include/COMM.H: In member function ‘int IRAD::Comm::CommunicatorObject::AllGatherMOV(std::vector<DataType>&, std::vector<DataType>&, std::vector<int>&, int)’:
/usr/local/src/IRAD/include/COMM.H:593:12: error: no match for ‘operator+=’ (operand types are ‘int’ and ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’)
      nrecv += nsi++;
      ~~~~~~^~~~~~~~
CMakeFiles/IRAD.dir/build.make:182: recipe for target 'CMakeFiles/IRAD.dir/src/COMM.C.o' failed
make[2]: *** [CMakeFiles/IRAD.dir/src/COMM.C.o] Error 1
CMakeFiles/Makefile2:493: recipe for target 'CMakeFiles/IRAD.dir/all' failed
make[1]: *** [CMakeFiles/IRAD.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

@msafdari1234
Copy link
Collaborator

msafdari1234 commented Oct 28, 2019

I suspect you are using a relatively modern compiler. IRAD is old and not compatible with modern compilers. We have noticed these issues and fixed them in our new IMPACT release. I just updated our IMPACT project. The project no longer relies on IRAD (which will be no longer supported) and it is compatible with the latest gnu compilers. We are upgrading Rocstar build system to a great deal soon. It will be ready for public release in next few weeks.

Meanwhile, please go ahead and checkout our new IMPACT release, build it and use that for Rocstar (not this legacy version, try the new version). That should address these compile issues.

@XiSheng1998
Copy link
Author

Additionally, when I use ccmake $ROCSTAR_SOURCE, and I found that BLOCKSOLVE_INC and BLOCKSOLVE_LIB was set to notfound, I checked Rocburn/CMakeList.txt, and found:

find_library(BLOCKSOLVE_LIBRARY blocksolve95)
find_path(BLO	CKSOLVE_INC blocksolve95.h)

But I could found any information of blocksolve library. Is there any way to download this lib?

@msafdari1234
Copy link
Collaborator

Blocksolve is not used in the project, so you are safe. Rocstar build system soon will be improved in new release and these issue will be fixed. Once again, none of the new fixes will be released under Rocstar-legacy and I recommend you to switch to Rocstar.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants