Re: Help needed with include path precedence order

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 25 Jan 2019 at 08:49, David Aldrich
<david.aldrich.ntml@xxxxxxxxx> wrote:
>
> Hi
>
> I am using gcc 7.3.0 on Ubuntu 18.04 LTS to build an application that uses
> the Boost libraries. I want to use  Boost 1.69, which I have installed on
> another server. The Ubuntu machine has  Boost 1.65 installed.  I specify
> the remote boost path (to 1.69) in my makefile and 'make' compiles my
> source file with:
>
>
>
> g++ -c -Wall -m64 -I/net/simdata/OpenSourceLibs/Boost/rel-1.69.0/ -fpic -O3
> SINRCalculation.cpp -o _gnuRelease/SINRCalculation.o
>
>
>
> Now, that source file uses boost/multi_array.hpp. The above compiler
> command gives error:
>
>
>
> In file included from /usr/include/boost/multi_array.hpp:30:0,

This was found in /usr/include

>                  from SINRCalculation.cpp:25:
>
> /net/simdata/Hudson_OpenSourceLibs/Boost/rel-1.69.0/boost/type_traits.hpp:118:10:

But this was found in a different path. One that doesn't look the same
as the -I path you used (where did the "Hudson_" part come from?)

So something is very messed up. Why is the old <boost/multi_array.hpp>
being found in the first place? Is that header missing from your
boost-1.69 installation?


> fatal error: boost/type_traits/is_nothrow_swappable.hpp: No such file or
> directory
>
>  #include <boost/type_traits/is_nothrow_swappable.hpp>
>
>           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> compilation terminated.
>
>
>
> Now, my copy of boost 1.69 does contain is_nothrow_swappable.hpp so, at
> first sight, that error is surprising.

Your copy in /net/simdata/OpenSourceLibs/Boost/rel-1.69.0/ or the one
in /net/simdata/Hudson_OpenSourceLibs/Boost/rel-1.69.0/ which is being
found?
Are they the same?

Compile with -save-temps and inspect the SINRCalculation.oii file to
see which boost headers are found, in which locations. That should
help figure out what's going on.

>
>
> I think what is happening is the is_nothrow_swappable.hpp is being searched
> for on the system library path (boost 1.65 does not have that file), not
> the one I specified using -I.

Seems unlikely, I think something else is happening.

>
>
>
> Is this possible?  If so, how can I force the compiler to use the boost
> 1.69 path consistently for all paths?

The -I option you used should already do that, which is why I think
you have something messed up with your Boost installations.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux