61%] Building CXX object CMakeFiles/precice.dir/extras/bindings/fortran/src/SolverInterfaceFortran.cpp.o
[ 62%] Building CXX object CMakeFiles/precice.dir/extras/bindings/fortran/src/SolverInterfaceFASTEST.cpp.o
[ 62%] Linking CXX shared library libprecice.so
[ 62%] Built target precice
Scanning dependencies of target binprecice
Scanning dependencies of target testprecice
[ 62%] Building CXX object CMakeFiles/binprecice.dir/src/drivers/main.cpp.o
[ 63%] Building CXX object CMakeFiles/testprecice.dir/src/acceleration/test/AccelerationMasterSlaveTest.cpp.o
[ 63%] Building CXX object CMakeFiles/testprecice.dir/src/testing/main.cpp.o
[ 64%] Building CXX object CMakeFiles/testprecice.dir/src/acceleration/test/ParallelMatrixOperationsTest.cpp.o
[ 64%] Building CXX object CMakeFiles/testprecice.dir/src/acceleration/test/PreconditionerTest.cpp.o
[ 65%] Building CXX object CMakeFiles/testprecice.dir/src/action/tests/PythonActionTest.cpp.o
[ 65%] Building CXX object CMakeFiles/testprecice.dir/src/acceleration/test/QRFactorizationTest.cpp.o
[ 65%] Building CXX object CMakeFiles/testprecice.dir/src/action/tests/ScaleActionTest.cpp.o
[ 66%] Building CXX object CMakeFiles/testprecice.dir/src/action/tests/SummationActionTest.cpp.o
**[ 67%] Linking CXX executable binprecice**
**libprecice.so.2.1.0: undefined reference to `std::basic_ios<char, std::char_traits<char> >::operator bool() const'**
**libprecice.so.2.1.0: undefined reference to `typeinfo for std::thread::_State'**
**libprecice.so.2.1.0: undefined reference to `std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)())'**
**libprecice.so.2.1.0: undefined reference to `vtable for std::thread::_State'**
**libprecice.so.2.1.0: undefined reference to `std::thread::_State::~_State()'**
**collect2: error: ld returned 1 exit status**
**make[2]: *** [CMakeFiles/binprecice.dir/build.make:130: binprecice] Error 1**
**make[1]: *** [CMakeFiles/Makefile2:267: CMakeFiles/binprecice.dir/all] Error 2**
**make[1]: *** Waiting for unfinished jobs....**
**[ 67%] Building CXX object CMakeFiles/testprecice.dir/src/com/tests**/CommunicateBoundingBoxTest.cpp.o
[ 68%] Building CXX object CMakeFiles/testprecice.dir/src/com/tests/CommunicateMeshTest.cpp.o
[ 68%] Building CXX object CMakeFiles/testprecice.dir/src/com/tests/MPIDirectCommunicationTest.cpp.o
[ 69%] Building CXX object CMakeFiles/testprecice.dir/src/com/tests/MPIPortsCommunicationTest.cpp.o
[ 69%] Building CXX object CMakeFiles/testprecice.dir/src/com/tests/MPISinglePortsCommunicationTest.cpp.o
[ 70%] Building CXX object CMakeFiles/testprecice.dir/src/com/tests/SocketCommunicationTest.cpp.o
[ 70%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/AbsoluteConvergenceMeasureTest.cpp.o
[ 71%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/CompositionalCouplingSchemeTest.cpp.o
[ 71%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/DummyCouplingScheme.cpp.o
[ 72%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/ExplicitCouplingSchemeTest.cpp.o
[ 72%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/MinIterationConvergenceMeasureTest.cpp.o
[ 73%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/ParallelImplicitCouplingSchemeTest.cpp.o
[ 73%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/RelativeConvergenceMeasureTest.cpp.o
[ 74%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/ResidualRelativeConvergenceMeasureTest.cpp.o
[ 74%] Building CXX object CMakeFiles/testprecice.dir/src/cplscheme/tests/SerialImplicitCouplingSchemeTest.cpp.o
[ 75%] Building CXX object CMakeFiles/testprecice.dir/src/io/tests/ExportConfigurationTest.cpp.o
[ 75%] Building CXX object CMakeFiles/testprecice.dir/src/io/tests/ExportVTKTest.cpp.o
[ 76%] Building CXX object CMakeFiles/testprecice.dir/src/io/tests/ExportVTKXMLTest.cpp.o
[ 76%] Building CXX object CMakeFiles/testprecice.dir/src/io/tests/TXTTableWriterTest.cpp.o
[ 77%] Building CXX object CMakeFiles/testprecice.dir/src/io/tests/TXTWriterReaderTest.cpp.o
[ 77%] Building CXX object CMakeFiles/testprecice.dir/src/m2n/tests/GatherScatterCommunicationTest.cpp.o
[ 78%] Building CXX object CMakeFiles/testprecice.dir/src/m2n/tests/PointToPointCommunicationTest.cpp.o
[ 79%] Building CXX object CMakeFiles/testprecice.dir/src/mapping/tests/MappingConfigurationTest.cpp.o
[ 79%] Building CXX object CMakeFiles/testprecice.dir/src/mapping/tests/NearestNeighborMappingTest.cpp.o
[ 80%] Building CXX object CMakeFiles/testprecice.dir/src/mapping/tests/NearestProjectionMappingTest.cpp.o
[ 80%] Building CXX object CMakeFiles/testprecice.dir/src/mapping/tests/PetRadialBasisFctMappingTest.cpp.o
[ 81%] Building CXX object CMakeFiles/testprecice.dir/src/mapping/tests/RadialBasisFctMappingTest.cpp.o
[ 81%] Building CXX object CMakeFiles/testprecice.dir/src/math/tests/BarycenterTest.cpp.o
[ 82%] Building CXX object CMakeFiles/testprecice.dir/src/math/tests/DifferencesTest.cpp.o
[ 82%] Building CXX object CMakeFiles/testprecice.dir/src/math/tests/GeometryTest.cpp.o
[ 83%] Building CXX object CMakeFiles/testprecice.dir/src/mesh/tests/BoundingBoxTest.cpp.o
[ 83%] Building CXX object CMakeFiles/testprecice.dir/src/mesh/tests/DataConfigurationTest.cpp.o
[ 84%] Building CXX object CMakeFiles/testprecice.dir/src/mesh/tests/EdgeTest.cpp.o
[ 84%] Building CXX object CMakeFiles/testprecice.dir/src/mesh/tests/MeshTest.cpp.o
[ 85%] Building CXX object CMakeFiles/testprecice.dir/src/mesh/tests/RTreeAdapterTests.cpp.o
[ 85%] Building CXX object CMakeFiles/testprecice.dir/src/mesh/tests/RTreeTests.cpp.o
[ 86%] Building CXX object CMakeFiles/testprecice.dir/src/mesh/tests/TriangleTest.cpp.o
[ 86%] Building CXX object CMakeFiles/testprecice.dir/src/mesh/tests/VertexTest.cpp.o
[ 87%] Building CXX object CMakeFiles/testprecice.dir/src/partition/tests/ProvidedPartitionTest.cpp.o
[ 87%] Building CXX object CMakeFiles/testprecice.dir/src/partition/tests/ReceivedPartitionTest.cpp.o
[ 88%] Building CXX object CMakeFiles/testprecice.dir/src/precice/tests/ParallelTests.cpp.o
[ 88%] Building CXX object CMakeFiles/testprecice.dir/src/precice/tests/SerialTests.cpp.o
[ 89%] Building CXX object CMakeFiles/testprecice.dir/src/precice/tests/VersioningTests.cpp.o
[ 89%] Building CXX object CMakeFiles/testprecice.dir/src/precice/tests/WatchPointTest.cpp.o
[ 90%] Building CXX object CMakeFiles/testprecice.dir/src/query/tests/FindClosestTest.cpp.o
[ 90%] Building CXX object CMakeFiles/testprecice.dir/src/query/tests/FindClosestVertexVisitorTest.cpp.o
[ 91%] Building CXX object CMakeFiles/testprecice.dir/src/testing/TestContext.cpp.o
[ 91%] Building CXX object CMakeFiles/testprecice.dir/src/testing/Testing.cpp.o
[ 92%] Building CXX object CMakeFiles/testprecice.dir/src/testing/tests/ExampleTests.cpp.o
[ 92%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/AlgorithmTest.cpp.o
[ 93%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/DimensionsTest.cpp.o
[ 93%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/EigenHelperFunctionsTest.cpp.o
[ 94%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/ManageUniqueIDsTest.cpp.o
[ 94%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/MultiLockTest.cpp.o
[ 95%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/ParallelTest.cpp.o
[ 95%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/PointerVectorTest.cpp.o
[ 96%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/StatisticsTest.cpp.o
[ 96%] Building CXX object CMakeFiles/testprecice.dir/src/utils/tests/StringTest.cpp.o
[ 97%] Building CXX object CMakeFiles/testprecice.dir/src/xml/tests/ParserTest.cpp.o
[ 97%] Building CXX object CMakeFiles/testprecice.dir/src/xml/tests/PrinterTest.cpp.o
[ 98%] Building CXX object CMakeFiles/testprecice.dir/src/xml/tests/XMLTest.cpp.o
[100%] Linking CXX executable testprecice
CMakeFiles/testprecice.dir/src/precice/tests/WatchPointTest.cpp.o: In function `std::istream_iterator<double, char, std::char_traits<char>, long>::_M_read()':
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/stream_iterator.h:118: undefined reference to `std::basic_ios<char, std::char_traits<char> >::operator bool() const'
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/stream_iterator.h:122: undefined reference to `std::basic_ios<char, std::char_traits<char> >::operator bool() const'
libprecice.so.2.1.0: undefined reference to `typeinfo for std::thread::_State'
libprecice.so.2.1.0: undefined reference to `std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)())'
libprecice.so.2.1.0: undefined reference to `vtable for std::thread::_State'
libprecice.so.2.1.0: undefined reference to `std::thread::_State::~_State()'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/testprecice.dir/build.make:1150: testprecice] Error 1
make[1]: *** [CMakeFiles/Makefile2:240: CMakeFiles/testprecice.dir/all] Error 2
make: *** [Makefile:182: all] Error 2
Welcome @swag
Which C++ compiler are you using?
Did you see the page on dependencies on CentOS7 ?
I am using gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5). Yes I checked all the dependencies in a fresh CentOS7 installation.
I did as follows:
- Goto CentOS7 section of the link : https://github.com/precice/precice/wiki/Dependencies
sudo yum groupinstall ‘Development Tools’
sudo yum update
sudo yum install cmake3 libxml2-devel eigen3 openmpi-devel python3-devel
export PATH=/usr/lib64/openmpi/bin:$PATH
export CC=/opt/rh/devtoolset-7/root/usr/bin/gcc
Step 1 of dependencies do not show problem
Step 2, installation of boost to be done as follows
Boost***
2a. Goto the CentOS7 section of link https://fedoraproject.org/wiki/EPEL (Precice has issues if boost is more than 1.66. Source code installation is needed.)
2b. go to and download 1.66 version from : https://sourceforge.net/projects/boost/files/
2c. extract to any directory
2d. go to the directory
2e. ./bootstrap.sh --with-libraries=log,thread,system,filesystem,program_options,test --prefix=/usr/local
2f. sudo ./b2 install (it will install in /usr/local)
2h. remove the directory as all files have been copied to /usr/local
2i. Update the dynamic linker’s run-time bindings: sudo ldconfig
gcc-newer-version***
3a. sudo yum install centos-release-scl
3b. sudo yum install devtoolset-7
3c. scl enable devtoolset-7 bash //enable new gcc compiler bash
Eigen3************
4a. download eigen-3.3.7 from : https://gitlab.com/libeigen/eigen/-/releases
4b. cmake -DCMAKE_INSTALL_PREFIX=/usr/local …/
CMake will require Openssl-devel**
5a. sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/openssl-devel-1.0.2k-19.el7.x86_64.rpm
6.0 CMake************** Reference link: https://askubuntu.com/questions/355565/how-do-i-install-the-latest-version-of-cmake-from-the-command-line/865294#865294
version=3.18
build=4
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build.tar.gz
tar -xzvf cmake-$version.$build.tar.gz
cd cmake-$version.$build/
./bootstrap
make -j$(nproc)
sudo make install
7.0***************Install libxml2
sudo yum install libxml2-devel
8.0***************Install OpenMPI (Precice, PETSc, OpenFOAM should have the same OpenMPI version)
Download 4.0.2 from site : https://www.open-mpi.org/software/ompi/v4.0/
scl enable devtoolset-7 bash (i have provided for precaution if it uses gcc, to use latest in bash)
./configure --prefix=/usr/local
make all -j$(nproc)
sudo make install
mpiexec --version
9.0***********************PETSc**************** ( least version 3.12)
Download 3.12.5 version and extract it to a Dir in Local user.
Change into that directory and compile with or without debugging: ./configure --prefix=/usr/local --with-debugging=0 --download-fblaslapack=1 (disable debugging for optimal performance)
After installation:
export PETSC_DIR=/home/aaa/Software/petsc-3.12.5
export PETSC_ARCH=arch-linux2-c-opt
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH
10.Install numpy scipy etc**********
sudo python3 -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
11.Precice******
wget https://github.com/precice/precice/archive/v2.1.0.tar.gz
tar -xzvf v2.1.0.tar.gz
cd precice-2.1.0
unset PETSC_DIR
unset PETSC_ARCH
unset LD_LIBRARY_PATH
export PETSC_DIR=/home/aaa/Software/petsc-3.12.5
export PETSC_ARCH=arch-linux2-c-opt
export LD_LIBRARY_PATH=$PETSC_DIR/$PETSC_ARCH/lib:$LD_LIBRARY_PATH
scl enable devtoolset-7 bash
mkdir build && cd build
cmake -DBUILD_SHARED_LIBS=ON …
make -j $(nproc)
@swag it is difficult to debug this remotely, but here are some ideas:
- Do you maybe have multiple compilers installed? This could mean that you are using an older C++ Standard Library, even though your compiler is recent enough.
- In systems that do not have recent versions of the dependencies (such as some HPC clusters), a convenient way is to get preCICE from Spack. This does automatically all the steps that you described here.
- It looks like the library (
libprecice.so
) is being built successfully, and the problem only affects thetestprecice
. This is mainly meant for developers and you could ignore it if you can still run simulations on your system. You could check if the examples work (which, however, don’t use all the features of preCICE).
Please format your posts to clearly show the code/log snippets. This forum supports Markdown and you can just add three ``` in the beginning and three ``` at the end of each code snippet. This would make it much easier for us to help.
@swag did you have any success with Spack or any other way?
Hi @Makis and @swag,
I also met the same problem.
[ 99%] Building CXX object CMakeFiles/testprecice.dir/src/xml/tests/XMLTest.cpp.o
[100%] Linking CXX executable testprecice
libprecice.so.1.6.1: undefined reference tostd::basic_ios<char, std::char_traits<char> >::operator bool() const' libprecice.so.1.6.1: undefined reference to
typeinfo for std::_State’
libprecice.so.1.6.1: undefined reference tostd::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)())' libprecice.so.1.6.1: undefined reference to
vtable for std::_State’
libprecice.so.1.6.1: undefined reference to `std::_State::~_State()’
collect2: error: ld returned 1 exit status
make[2]: *** [testprecice] Error 1
make[1]: *** [CMakeFiles/testprecice.dir/all] Error 2
make: *** [all] Error 2
Since I don’t have root authority to use yum, all the following dependencies are built from source code.
CentOS: 7
gcc: 8.3.0
Cmake: 3.18
Eigen: 3.3.8
Boost: 1.66
libxml2: 2.9.1
petsc: 3.14.1
openmpi: 3.16
When I continued to run the following command for test, the results are as follows:
[lengjun@localhost build]$ make test_install
Scanning dependencies of target test_install
Testing the installation using the C++ solverdummy
– The CXX compiler identification is GNU 8.3.1
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Check for working CXX compiler: /opt/rh/devtoolset-8/root/usr/bin/c++ - skipped
– Detecting CXX compile features
– Detecting CXX compile features - done
CMake Error at CMakeLists.txt:4 (find_package):
Could not find a package configuration file provided by “precice” with any
of the following names:
preciceConfig.cmake
precice-config.cmake
Add the installation prefix of “precice” to CMAKE_PREFIX_PATH or set
“precice_DIR” to a directory containing one of the above files. If
“precice” provides a separate development package or SDK, be sure it has
been installed.
– Configuring incomplete, errors occurred!
See also “/home/lengjun/softwares/precice-1.6.1/build/TestInstall/CMakeFiles/CMakeOutput.log”.
make[3]: *** [CMakeFiles/test_install] Error 1
make[2]: *** [CMakeFiles/test_install.dir/all] Error 2
make[1]: *** [CMakeFiles/test_install.dir/rule] Error 2
make: *** [test_install] Error 2
I don’t know why.
However, the installation succeeded when I set petsc and mph off:
cmake -DBUILD_SHARED_LIBS=ON -DPRECICE_MPICommunication=OFF -DPRECICE_PETScMapping=OFF -DCMAKE_PREFIX_PATH=/home/lengjun/softwares/precice-1.6.1/build …
Maybe I need to rebuild openMPI and PTESC, right?
By the way, should I set -DCMAKE_PREFIX_PATH=/my/file or -DCMAKE_INSTALL_PREFIX=/my/file if I want to install in other files?
Could you post the output of mpicc --version
? Are you sure that your self-compiled OpenMPI is based on the correct GCC?
Hi @ajaust, I recompiled OpenMPI and PETSc and preCICE works now! Thanks!
[lengjun@localhost ~]$ mpicc --version
gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Great to hear that it works now!
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.