Project

General

Profile

Actions

Support Request #4249

closed

Failed to compile components of ADTF File Library on Ubuntu

Added by hidden over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Customer:
DAIMLER
Department:
Requester's Priority:
Normal
Support Level:
3rd Level
Resolution:
Solved Issue
Product Issue Numbers:
Platform:
Ubuntu 16.04 64bit, Ubuntu 18.04 64bit
Topic:
FileLibrary::Common
FAQ Links:

Description

Supportanfrage

ich will die adtf-file-library 0.2.1 auf einem Ubuntu system so wie im README
angegeben kompilieren. Leider schlägt das Kompilieren der ddl Library fehl.

Hier die ausgeführten Schritte:
  • System Ubuntu 16.04.5 LTS
  • adtf_file-0.2.1.zip, a_util-5.1.0.zip, ddl-4.0.3.zip aus dem Download Center
    von digitalwerk.net heruntergeladen
  • cmake 3.12 von cmake.org binary runtergeladen und separat installiert
    (a_util erfordert mind. 3.8)
  • a_util-5.1.0 mit cmake und make kompiliert und installiert nach
    /usr/local/adtf-toolboxes/filelib/0.2.1
  • ddl-4.0.3: Makefile erstellt mit dem gleichen CMAKE_INSTALL_PREFIX wie
    a_util

Beim Kompilieren mit make bekommt man folgenden Fehler:

[1]heinrich@ubuntu:~/adtf_file_lib-0.2.1/ddl-4.0.3/Debug$ make
Scanning dependencies of target ddl
[  1%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddl_error.cpp.o
[  2%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlversionhelper.cpp.o
[  4%] Building CXX object CMakeFiles/ddl.dir/ddlrepresentation/ddl.cpp.o
[  5%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlalignment.cpp.o
[  6%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlbyteorder.cpp.o
[  8%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlcomplex.cpp.o
[  9%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddldatatype.cpp.o
[ 10%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlheader.cpp.o
[ 12%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlstream.cpp.o
[ 13%] Building CXX object CMakeFiles/ddl.dir/ddlrepresentation/ddlenum.cpp.o
[ 15%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlcontainer.cpp.o
[ 16%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddldescription.cpp.o
[ 17%] Building CXX object CMakeFiles/ddl.dir/ddlrepresentation/ddlunit.cpp.o
[ 19%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlrefunit.cpp.o
[ 20%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlprefix.cpp.o
[ 21%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlextdeclaration.cpp.o
[ 23%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlelement.cpp.o
[ 24%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlbaseunit.cpp.o
[ 26%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlstreamstruct.cpp.o
[ 27%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlprinter.cpp.o
[ 28%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlimporter.cpp.o
[ 30%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlcloner.cpp.o
[ 31%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlresolver.cpp.o
[ 32%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlrepair.cpp.o
[ 34%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlinspector.cpp.o
[ 35%] Building CXX object
CMakeFiles/ddl.dir/ddlrepresentation/ddlcompare.cpp.o
/home/heinrich/adtf_file_lib-0.2.1/ddl-4.0.3/ddlrepresentation/ddlcompare.cpp:
In static member function ‘static a_util::result::Result
ddl::cDDLCompare::IsBinaryEqual(const string&, const string&, const string&,
const string&, bool)’:
/home/heinrich/adtf_file_lib-0.2.1/ddl-4.0.3/ddlrepresentation/ddlcompare.cpp:105:5:
error: ‘unique_ptr’ is not a member of ‘std’
     std::unique_ptr<cDDLDescription>
pRefDesc(cDDLDescription::CreateDefault())
    
/home/heinrich/adtf_file_lib-0.2.1/ddl-4.0.3/ddlrepresentation/ddlcompare.cpp:105:5:
note: suggested alternatives:
In file included from
/usr/local/adtf-toolboxes/filelib/0.2.1/include/a_util/memory/unique_ptr.h:33:0,
                 from
/usr/local/adtf-toolboxes/filelib/0.2.1/include/a_util/memory.h:24,
                 from
/usr/local/adtf-toolboxes/filelib/0.2.1/include/a_util/filesystem/path.h:20,
                 from
/usr/local/adtf-toolboxes/filelib/0.2.1/include/a_util/filesystem.h:20,
                 from /home/heinrich/adtf_file_lib-0.2.1/ddl-4.0.3/ddl.h:46,
                 from
/home/heinrich/adtf_file_lib-0.2.1/ddl-4.0.3/ddlrepresentation/ddlcompare.cpp:17:
/usr/local/adtf-toolboxes/filelib/0.2.1/include/a_util/memory/detail/unique_ptr_fallback_decl.h:35:7:
note:   ‘a_util::memory::detail::unique_ptr’
 class unique_ptr
       ^
/usr/local/adtf-toolboxes/filelib/0.2.1/include/a_util/memory/detail/unique_ptr_fallback_decl.h:35:7:
note:   ‘a_util::memory::detail::unique_ptr’
/home/heinrich/adtf_file_lib-0.2.1/ddl-4.0.3/ddlrepresentation/ddlcompare.cpp:105:36:
error: expected primary-expression before ‘>’ token
     std::unique_ptr<cDDLDescription>
pRefDesc(cDDLDescription::CreateDefault())
                                    ^
/home/heinrich/adtf_file_lib-0.2.1/ddl-4.0.3/ddlrepresentation/ddlcompare.cpp:105:79:
error: ‘pRefDesc’ was not declared in this scope
    std::unique_ptr<cDDLDescription>
pRefDesc(cDDLDescription::CreateDefault());
                                                                             

CMakeFiles/ddl.dir/build.make:662: recipe for target
'CMakeFiles/ddl.dir/ddlrepresentation/ddlcompare.cpp.o' failed
make2: * [CMakeFiles/ddl.dir/ddlrepresentation/ddlcompare.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/ddl.dir/all' failed
make1:
[CMakeFiles/ddl.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *
* [all] Error 2

Können Sie hier unterstützen?

Lösung

Das Problem ist ein fehlerhaftes Verhalten der CMakeFiles der a_utils mit CMake 3.12. Man muss bei der 5.1 leider zwingend Cmake 3.9.x einsetzen, sonst klappt es nicht. Laut AEV ist das bei neueren a_utils gefixed. Also ich habs letztendlich mit Cmake 3.9.6 und folgendem Aufruf hinbekommen, bitte bei allen drei Projekten (a_utils, ddl, adtf_file) verwenden:

~/devel/cmake-3.9.6-Linux-x86_64/bin/cmake -DCMAKE_CXX_STANDARD=14 -DCMAKE_INSTALL_PREFIX=<blah> -DCMAKE_BUILD_TYPE=Debug -Da_util_cmake_enable_documentation=0 <src>
Actions

Also available in: Atom PDF