Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eCAL does not build with C++17 #1048

Closed
jo-mue opened this issue Apr 5, 2023 · 0 comments · Fixed by #1049
Closed

eCAL does not build with C++17 #1048

jo-mue opened this issue Apr 5, 2023 · 0 comments · Fixed by #1049

Comments

@jo-mue
Copy link
Contributor

jo-mue commented Apr 5, 2023

Same issue as eclipse-ecal/ecal-core#9

Describe the bug
eCAL does not build with C++17. Issue seems to be thirdparty/simpleini.

Minimal example to reproduce

mkdir _build
cd _build

cmake .. -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=ON
cmake --build . --parallel --config Release

------ Build All started: Project: ecal-core, Configuration: x64-Release ------
[1/3] Building CXX object ecal\core\CMakeFiles\core.dir\src\ecal_config_reader.cpp.obj
FAILED: ecal/core/CMakeFiles/core.dir/src/ecal_config_reader.cpp.obj
C:[...]\x64\cl.exe /nologo /TP -DASIO_DISABLE_VISIBILITY -DASIO_STANDALONE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D_WIN32_WINNT=0x0601 -Dcore_EXPORTS -DeCAL_EXPORTS -I....\ecal\core\src -I....\ecal\core\include -Iecal\core\include -I....\lib\ecal_protobuf\include -I....\thirdparty\protobuf\src -Iecal\core_pb\protobuf -I....\thirdparty\ecal-utils\include -I....\thirdparty\tcp_pubsub\tcp_pubsub\include -Ithirdparty\tcp_pubsub\tcp_pubsub -I"C:\Program Files\HDF_Group\HDF5\1.10.5\include" -I....\thirdparty\asio\asio\include -I....\thirdparty\tclap\include -I....\thirdparty\simpleini /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MP /W4 /MD /O2 /Ob2 /DNDEBUG -std:c++17 /showIncludes /Foecal\core\CMakeFiles\core.dir\src\ecal_config_reader.cpp.obj /Fdecal\core\CMakeFiles\core.dir\ /FS -c ....\ecal\core\src\ecal_config_reader.cpp
C:[...]\ext\ecal-core_build\x64-Release\cl : Command line warning D9025: overriding '/W3' with '/W4'
C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2143: syntax error: missing ',' before '<'
....\thirdparty\simpleini\SimpleIni.h(331): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry::KeyOrder' being compiled
....\thirdparty\simpleini\SimpleIni.h(340): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry' being compiled
....\thirdparty\simpleini\SimpleIni.h(1245): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>' being compiled
C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(337): error C2143: syntax error: missing ',' before '<'
....\thirdparty\simpleini\SimpleIni.h(340): note: see reference to class template instantiation 'CSimpleIniTempl<SI_CHAR,SI_STRLESS,SI_CONVERTER>::Entry::LoadOrder' being compiled
C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2039: 'binary_function': is not a member of 'std'
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\algorithm(40): note: see declaration of 'std'
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\xmemory(1321): note: see reference to class template instantiation 'CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder' being compiled
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\xmemory(1321): note: see reference to variable template 'const bool is_empty_v<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA >::Entry::KeyOrder>' being compiled
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\include\map(73): note: see reference to class template instantiation 'std::_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,false>>' being compiled
with
[
_Kty=CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,
_Ty=std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *,CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *>>>,
_Pr=CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder,
_Alloc=std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *,CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const char *>>>>>
]
....\thirdparty\simpleini\SimpleIni.h(1221): note: see reference to class template instantiation 'std::map<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,std::multimap<CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>::Entry,const SI_CHAR *,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *>>>,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,std::multimap<CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *,CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry::KeyOrder,std::allocator<std::pair<const CSimpleIniTempl<SI_CHAR,SI_NoCase<SI_CHAR>,SI_ConvertA<SI_CHAR>>::Entry,const SI_CHAR *>>>>>>' being compiled
with
[
SI_CHAR=char
]
....\ecal\core\src\ecal_config_reader.cpp(283): note: see reference to class template instantiation 'CSimpleIniTempl<char,SI_NoCase,SI_ConvertA>' being compiled
C:[...]\ext\ecal-core\thirdparty\simpleini\SimpleIni.h(329): error C2504: 'binary_function': base class undefined
ninja: build stopped: subcommand failed.

Build All failed.

Issue seems to be same error message as brofield/simpleini#48

Builds fine using Ubuntu 20.04.

Desktop (please complete the following information):

  • OS: Windows 10 Enterprise
  • Version: 21H2 19044.2728
  • Microsoft Visual Studio Professional 2019 Version 16.11.25
  • MSVC 19.29.30148.0
  • CMake version 3.20.21032501-MSVC_2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant