Forum: PC-Programmierung Migration c++ Projekt SLES11 nach RHEL7.2


von René H. (Gast)


Lesenswert?

Hallo Zusammen,

ich bin überzeugt, dass hier jemand schon mal so ein Problem hatte. Ich 
portiere gerade ein Projekt von SLES11(Compiler 4.3.4) nach 
RHEL7.2(Compiler 4.8.5).

Es wird "vector" includiert, welches wiederum bits/std_algobase.h 
includiert. Das sucht nach bits c++config.h, was es aber nicht gibt 
resp. nicht in dem Pfad. Die Compiler Option -std=c++98 brachte auch 
nichts.

Also:
1
#include <vector>
2
  ==> #include <bits/stl_algobase.h>
3
    ==> #include <bits/c++config.h>     //<< not found

Ich vermute einen Fehler in der Installation, weil ich kann mir nicht 
vorstellen, dass der c++ Compiler nicht konsistent ist.

Hat jemand evtl. einen Tipp?

Grüsse,
René

von Dr. Sommer (Gast)


Lesenswert?

René H. schrieb:
> (Compiler 4.3.4) nach
> RHEL7.2(Compiler 4.8.5).
Ach der Compiler mit dem Namen Compiler. Meinst du vielleicht den GCC? 
Und du hast von einer uralten auf eine alte Version gewechselt? Toll ;-)

Wie wärs mal damit die ganze Fehlermeldung (inklusive der ersten 
Meldung!!) zu zeigen und nicht nur deine Interpretation? Und zeig auch 
mal deinen Code.

von René H. (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Ach der Compiler mit dem Namen Compiler. Meinst du vielleicht den GCC?
> Und du hast von einer uralten auf eine alte Version gewechselt? Toll ;-)

Natürlich den GCC, resp. c++ (nicht clang) und jaja, ich suche mir das 
nicht selber aus. ;-)

Code kann ich nicht zeigen, aber im wesentlich geht es ja nur um den 
#include<vector>.

Grüsse,
René

von Dr. Sommer (Gast)


Lesenswert?

Und wie lautet die Fehlermeldung? Wie siehts bei einem Dummy-Programm 
aus:
1
#include <vector>
2
3
int main () {
4
  vector<int> v;
5
}

von René H. (Gast)


Lesenswert?

Ich habe die Fehlermeldung versucht "öffentlich" tauglich zu machen. Wie 
folgt:
1
user@dev:~/Proj/binaries> make
2
/usr/bin/cmake -H/home/user/Proj/proj/04_Implementation/src/proj -B/home/user/Proj/binaries --check-build-system CMakeFiles/Makefile.cmake 0
3
/usr/bin/cmake -E cmake_progress_start /home/user/Proj/binaries/CMakeFiles /home/user/Proj/binaries/CMakeFiles/progress.marks
4
make -f CMakeFiles/Makefile2 all
5
make[1]: Entering directory `/home/user/Proj/proj_3.1.02/06_Deployment/binaries'
6
make -f CMakeFiles/proj.dir/build.make CMakeFiles/proj.dir/depend
7
make[2]: Entering directory `/home/user/Proj/proj_3.1.02/06_Deployment/binaries'
8
cd /home/user/Proj/binaries && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/user/Proj/proj/04_Implementation/src/proj /home/user/Proj/proj/04_Implementation/src/proj /home/user/Proj/binaries /home/user/Proj/binaries /home/user/Proj/binaries/CMakeFiles/proj.dir/DependInfo.cmake --color=
9
make[2]: Leaving directory `/home/user/Proj/proj_3.1.02/06_Deployment/binaries'
10
make -f CMakeFiles/proj.dir/build.make CMakeFiles/proj.dir/build
11
make[2]: Entering directory `/home/user/Proj/proj_3.1.02/06_Deployment/binaries'
12
/usr/bin/cmake -E cmake_progress_report /home/user/Proj/binaries/CMakeFiles 1
13
[  1%] Building CXX object CMakeFiles/proj.dir/projmain.cpp.o
14
/usr/bin/c++   -D_REENTRANT -Weffc++ -Wall -Wextra -Wno-long-long -fno-strict-aliasing -O2 -I/home/user/Proj/binaries/../../04_Implementation/src/proj -I/home/user/Proj/binaries/../../04_Implementation/src/inc -I/home/user/Proj/binaries/../../04_Implementation/src/common -I/home/user/Proj/binaries/../../04_Implementation/entlib/inc -I/home/user/Proj/binaries/../../04_Implementation/snappy  -o CMakeFiles/proj.dir/projmain.cpp.o -c /home/user/Proj/projmain.cpp
15
In file included from /usr/include/c++/4.8.2/vector:60:0,
16
                 from /home/user/Proj/projthreadreg.h:27,
17
                 from /home/user/Proj/projmain.cpp:58:
18
/usr/include/c++/4.8.2/bits/stl_algobase.h:59:28: fatal error: bits/c++config.h: No such file or directory
19
 #include <bits/c++config.h>
20
                            ^
21
compilation terminated.
22
make[2]: *** [CMakeFiles/proj.dir/projmain.cpp.o] Error 1
23
make[2]: Leaving directory `/home/user/Proj/proj_3.1.02/06_Deployment/binaries'
24
make[1]: *** [CMakeFiles/proj.dir/all] Error 2
25
make[1]: Leaving directory `/home/user/Proj/proj_3.1.02/06_Deployment/binaries'
26
make: *** [all] Error 2


Grüsse,
René

von Jan L. (ranzcopter)


Lesenswert?

d.h. dies hier ist installiert?

# yum whatprovides "*/c++config.h"

libstdc++-devel-4.8.5-11.el7.x86_64 : Header files and libraries for C++ 
development
Repo        : base
Matched from:
Filename    : 
/usr/include/c++/4.8.2/x86_64-redhat-linux/32/bits/c++config.h
Filename    : 
/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/c++config.h


ausserdem:
# dir /usr/include/c++/
total 12
drwxr-xr-x 12 root root 4096 Jan  2 15:27 4.8.2
lrwxrwxrwx  1 root root    5 Jan  2 15:27 4.8.5 -> 4.8.2

von René H. (Gast)


Lesenswert?

Hallo Jan,

ja, installiert schon nur sucht der Compiler unter:

/usr/include/c++/4.8.2/bits

und installiert ist es unter:

/usr/include/c++/4.8.2/i686-redhat-linux/bits

Ich habe den Eindruck, dass sich da die verschiedenen STL Versionen in 
die Quere kommen.

Grüsse,
René
1
/usr/include/c++/4.8.5/bits:
2
algorithmfwd.h             exception_defines.h  locale_classes.tcc       regex_compiler.h        stl_deque.h                stl_tempbuf.h
3
allocator.h                exception_ptr.h      locale_facets.h          regex_constants.h       stl_function.h             stl_tree.h
4
alloc_traits.h             forward_list.h       locale_facets_nonio.h    regex_cursor.h          stl_heap.h                 stl_uninitialized.h
5
atomic_base.h              forward_list.tcc     locale_facets_nonio.tcc  regex_error.h           stl_iterator_base_funcs.h  stl_vector.h
6
atomic_lockfree_defines.h  fstream.tcc          locale_facets.tcc        regex_grep_matcher.h    stl_iterator_base_types.h  streambuf_iterator.h
7
basic_ios.h                functexcept.h        localefwd.h              regex_grep_matcher.tcc  stl_iterator.h             streambuf.tcc
8
basic_ios.tcc              functional_hash.h    mask_array.h             regex.h                 stl_list.h                 stream_iterator.h
9
basic_string.h             gslice_array.h       memoryfwd.h              regex_nfa.h             stl_map.h                  stringfwd.h
10
basic_string.tcc           gslice.h             move.h                   regex_nfa.tcc           stl_multimap.h             unique_ptr.h
11
boost_concept_check.h      hash_bytes.h         nested_exception.h       shared_ptr_base.h       stl_multiset.h             unordered_map.h
12
c++0x_warning.h            hashtable.h          ostream_insert.h         shared_ptr.h            stl_numeric.h              unordered_set.h
13
char_traits.h              hashtable_policy.h   ostream.tcc              slice_array.h           stl_pair.h                 uses_allocator.h
14
codecvt.h                  indirect_array.h     postypes.h               sstream.tcc             stl_queue.h                valarray_after.h
15
concept_check.h            ios_base.h           ptr_traits.h             stl_algobase.h          stl_raw_storage_iter.h     valarray_array.h
16
cpp_type_traits.h          istream.tcc          random.h                 stl_algo.h              stl_relops.h               valarray_array.tcc
17
cxxabi_forced.h            list.tcc             random.tcc               stl_bvector.h           stl_set.h                  valarray_before.h
18
deque.tcc                  locale_classes.h     range_access.h           stl_construct.h         stl_stack.h                vector.tcc
19
20
ls  /usr/include/c++/4.8.5/i686-redhat-linux/bits/
21
atomic_word.h   c++config.h  cpu_defines.h   cxxabi_tweaks.h    gthr-default.h  gthr-single.h       os_defines.h  time_members.h
22
basic_file.h    c++io.h      ctype_base.h    error_constants.h  gthr.h          messages_members.h  stdc++.h
23
c++allocator.h  c++locale.h  ctype_inline.h  extc++.h           gthr-posix.h    opt_random.h        stdtr1c++.h

von René H. (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mal das vector Beispiel genommen. Compiler versuch mit:
1
c++ -o vectest vectest.cpp
2
3
Output:
4
5
home>c++ -o vectest vectest.cpp
6
7
In file included from vectest.cpp:2:0:
8
/usr/include/c++/4.8.2/iostream:38:28: fatal error: bits/c++config.h: No such file or directory
9
 #include <bits/c++config.h>
10
                            ^
11
compilation terminated.

Grüsse,
René

Edit: mit dem gcc 5.3.1 (devtoolset-4) geht es....

von Jan L. (ranzcopter)


Lesenswert?

René H. schrieb:
> Ich habe mal das vector Beispiel genommen. Compiler versuch mit:

klappt hier auf einem vanilla CentOS Linux release 7.3.1611 ohne 
Probleme - ergo wohl eine etwas "verbastelte" Installation?
Am besten mal einen frischen Container/Docker/VM nehmen und damit 
compilieren...

"Hart" ein "-I /usr/include/c++/4.8.2/i686-redhat-linux" beim 
Compilieren hilft nicht?

von René H. (Gast)


Lesenswert?

Hallo Jan,

Jan L. schrieb:
> ergo wohl eine etwas "verbastelte" Installation?

Das ist auch meine Vermutung.

Jan L. schrieb:
> Am besten mal einen frischen Container/Docker/VM nehmen und damit
> compilieren...

Das darf ich hier nicht selber machen resp. muss die Administratoren 
beauftragen. Das dauert dann ein gefühltes halbes Leben. Deshalb ist 
meine Hoffnung das selber zu lösen (das RHEL läuft schon auf einer VM).

Jan L. schrieb:
> "Hart" ein "-I /usr/include/c++/4.8.2/i686-redhat-linux" beim
> Compilieren hilft nicht?

Nope, habe ich natürlich getestet. Auch bits/ weg "gemoved" und ein link 
auf /usr/include/c++/4.8.5/i686-redhat-linux/bits/ hatte nichts 
gebracht.

Lösen könnte ich das schon, dass geht dann aber unter Symptombekämpfung, 
ich würde das gerne sauber haben, zumal es nicht das letzte Migrations 
Projekt sein wird.

Ich kann jetzt erst mal gut mit dem GCC 5.3.1 leben. Ich bestelle mir 
dann eine neue VM. :-(

Ich danke Dir für Deine Hilfe.

Grüsse,
René

Edit: was ich nicht verstehe woher das 4.8.2 herkommt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.