#cmake
#cmake
Вопрос:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
-- Configuring done
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::replace: __pos (which is 18446744073709551615) > this->size() (which is 130)
Aborted (core dumped)
cmake ..
работает нормально, пока я не введу cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
… после этой команды у меня будет тот же вывод для следующих cmake ..
входов
обратная трассировка gdb:
(gdb) bt
#0 0x00007ffff694b428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1 0x00007ffff694d02a in __GI_abort () at abort.c:89
#2 0x00007ffff6f8584d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc .so.6
#3 0x00007ffff6f836b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc .so.6
#4 0x00007ffff6f83701 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc .so.6
#5 0x00007ffff6f83919 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc .so.6
#6 0x00007ffff6fac3f7 in std::__throw_out_of_range_fmt(char const*, ...) () from /usr/lib/x86_64-linux-gnu/libstdc .so.6
#7 0x00007ffff7016247 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, char const*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libstdc .so.6
#8 0x00000000006fd555 in cmMakefileTargetGenerator::WriteObjectBuildFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >amp;, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > constamp;, cmSourceFile constamp;, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >amp;) ()
#9 0x00000000006ff57d in cmMakefileTargetGenerator::WriteObjectRuleFiles(cmSourceFile constamp;) ()
#10 0x00000000006ffe2f in cmMakefileTargetGenerator::WriteTargetBuildRules() ()
#11 0x000000000070b271 in cmMakefileLibraryTargetGenerator::WriteRuleFiles() ()
#12 0x00000000006f3d26 in cmLocalUnixMakefileGenerator3::Generate() ()
#13 0x00000000006c19bb in cmGlobalGenerator::Generate() ()
#14 0x00000000006cf853 in cmGlobalUnixMakefileGenerator3::Generate() ()
#15 0x0000000000561297 in cmake::Generate() ()
#16 0x0000000000561763 in cmake::Run(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > constamp;, bool) ()
#17 0x00000000004bdf94 in do_cmake(int, char const* const*) ()
#18 0x00000000004b98e6 in main ()
Протестировано на трех дистрибутивах Ubuntu.
версии cmake: 3.10.0 и 3.5.1
В чем возможная проблема? Не могу найти ничего подобного в Google вообще
Комментарии:
1. Я думаю, что обращение к разработчикам CMake через форум CMake discourse или через средство отслеживания проблем CMake было бы полезно для решения такого рода проблем.
Ответ №1:
Исправлено в CMake 3.19.1 https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5521 проблема: https://gitlab.kitware.com/cmake/cmake/-/issues/21471