[CMake] Cmake cannot locate header file that exists on my system

Chris Coutinho c.coutinho at redstack.nl
Thu Mar 17 12:16:21 EDT 2016


Thanks for the quickfix Andreas, that fixed the problem.

I've also found the bug that's the reason for the error, the compiler flags are mixing up relative and absolute pathnames. This is definitely a Dakota issue.

Setting verbose option on when executing make gives me a better idea of what's wrong:

------- OUTPUT -------

Scanning dependencies of target optpp
make[2]: Leaving directory '/opt/dakota/dakota-6.3.0.build'
make -f packages/OPTPP/src/CMakeFiles/optpp.dir/build.make packages/OPTPP/src/CMakeFiles/optpp.dir/build
make[2]: Entering directory '/opt/dakota/dakota-6.3.0.build'
[  5%] Building CXX object packages/OPTPP/src/CMakeFiles/optpp.dir/globals.C.o
cd /opt/dakota/dakota-6.3.0.build/packages/OPTPP/src && /usr/bin/c++   -DBOOST_SIGNALS_NO_DEPRECATION_WARNING -DDAKOTA_OPTPP -DHAVE_STD -DHAVE_SYS_TIMES_H -DHAVE_SYS_TIME_H -DHAVE_TIMES -Doptpp_EXPORTS -I/opt/dakota/dakota-6.3.0.build/packages/OPTPP/include -I/opt/dakota/dakota-6.3.0.src/packages/OPTPP/include -I/usr/lib64/mpi/gcc/openmpi/lib64/cmake/Teuchos/../../../usr/lib64/mpi/gcc/openmpi/include/trilinos -I/opt/dakota/dakota-6.3.0.src/packages/ampl -I/opt/dakota/dakota-6.3.0.build/packages/ampl -I/opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/Base -I/opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/Constraints -I/opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/GSS -I/opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/Newton -I/opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/PDS -I/opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/Utils  -fPIC   -o CMakeFiles/optpp.dir/globals.C.o -c /opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/globals.C
In file included from /opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/globals.C:4:0:
/opt/dakota/dakota-6.3.0.src/packages/OPTPP/include/globals.h:22:41: fatal error: Teuchos_SerialDenseMatrix.hpp: No such file or directory
 #include "Teuchos_SerialDenseMatrix.hpp"
                                         ^
compilation terminated.

------- OUTPUT -------

The relevant line is when it tries to link to my machines trilinos package, when mixing up relative and absolute paths:
        -I/usr/lib64/mpi/gcc/openmpi/lib64/cmake/Teuchos/../../../usr/lib64/mpi/gcc/openmpi/include/trilinos

Thanks for the workaround!

Cheers,
Chris


-----Original Message-----
From: Andreas Naumann [mailto:Andreas-Naumann at gmx.net]
Sent: donderdag 17 maart 2016 16:31
To: Chris Coutinho <c.coutinho at redstack.nl>; cmake at cmake.org
Subject: Re: [CMake] Cmake cannot locate header file that exists on my system

You have to add the directory /usr/include/trilinos to the c++ include directories. The fastest workaround would be, to add the directory to the CMAKE_CXX_FLAGS using ccmake or cmake-gui.
The better solution is to look for any hint regarding trilinos in the CMakeLists.txt of dakota and check, why the corresponding include directory is not added.

Regards,

Andreas

Am 17.03.2016 um 14:32 schrieb Chris Coutinho:
>
> I'm attempting to install Dakota 6.3.0 using cmake 3.5.0 on a 64-bit
> Linux box from source (to link python and MATLAB), and Dakota is
> having trouble finding some dependencies. I've been able to install
> and use Dakota successfully on my previous machine (64-bit, OpenSUSE
> 13.2, cmake 3.3.0) without any problems. Now that I upgraded to the
> more recent version of OpenSUSE (Opensuse Leap 42.1) and cmake
> (3.5.0), I'm not able to get past this error.
>
> I am using cmake to build the source and create a makefile.
> Configuring cmake is fine; however, when running 'make' I get an error
> at around 5% of compiling:
>
> /[ 5%] Building CXX object
> packages/OPTPP/src/CMakeFiles/optpp.dir/globals.C.o/
> /In file included from
> /opt/dakota/dakota-6.3.0.src/packages/OPTPP/src/globals.C:4:0:/
> //opt/dakota/dakota-6.3.0.src/packages/OPTPP/include/globals.h:22:41:
> fatal error: Teuchos_SerialDenseMatrix.hpp: No such file or directory/
> /#include "Teuchos_SerialDenseMatrix.hpp"/ /^/ /compilation
> terminated./
>
> I looked for the missing file 'Teuchos_SerialDenseMatrix.hpp', and see
> that I have two copies on my computer from installing trilinos 11.4.3
> through the package manager. One is located under
> '/usr/include/trilinos', and the other is located
> '/usr/lib64/mpi/gcc/openmpi/include/trilinos'. I'm not sure why I have
> two copies...
>
> I added both of those directories to LD_LIBRARY_PATH in ~/.bashrc, but
> the error keeps coming up that Dakota isn't able to find the file. Can
> anyone help me with this installation issue?
>
> Kind regards,
>
> *Chris Coutinho,* EIT
>
> R&D Engineer
>
> REDstack, B.V.
>
> Pieter Zeemanstraat 6
>
> 8606 JR Sneek, The Netherlands
>
> work: +31 6 2222 5785
>
> mobile: +31 6 1689 0287
>
> www.redstack.nl
>
> De informatie verzonden middels deze e-mail is uitsluitend bestemd
> voor de geadresseerde. Gebruik door anderen is niet toegestaan.
> Openbaarmaking, verspreiding en/of verstrekking van deze informatie
> aan derden is niet toegestaan. A.Hak staat niet in voor een juiste en
> volledige overbrenging van de inhoud, alsmede de tijdige ontvangst
> daarvan.
>
> The information contained in this communication, including files, is
> confidential and legally privileged. It is intended solely for the use
> of the individual or entity to whom it is addressed and others
> authorized to receive it. If you are not the intended recipient you
> are hereby notified that any disclosure, copying, distribution or
> taking any action in reliance to the contents of this information, is
> strictly prohibited and may be unlawful. A.Hak is not liable for the
> proper, complete and timely transmission of the information contained
> in this communication.
>
>

De informatie verzonden middels deze e-mail is uitsluitend bestemd voor de geadresseerde. Gebruik door anderen is niet toegestaan. Openbaarmaking, verspreiding en/of verstrekking van deze informatie aan derden is niet toegestaan. A.Hak staat niet in voor een juiste en volledige overbrenging van de inhoud, alsmede de tijdige ontvangst daarvan.

The information contained in this communication, including files, is confidential and legally privileged. It is intended solely for the use of the individual or entity to whom it is addressed and others authorized to receive it. If you are not the intended recipient you are hereby notified that any disclosure, copying, distribution or taking any action in reliance to the contents of this information, is strictly prohibited and may be unlawful. A.Hak is not liable for the proper, complete and timely transmission of the information contained in this communication.


More information about the CMake mailing list