Во время отладки кода из hackerrank, наткнулся на такую проблему, что он не компилируется, если вместо "классического" способа создания проекта (sln- и vcxproj-файлы) создавать его с помощью cmake и CMakeLists.txt. Вот такие сообщения получаю 'not1': identifier not found:
Зайдя определение функций not1, ptr_fn, видим, что они "_cxx17_deprecate"
Теперь идем и видим вот такое в CMakelists.txt:
if (CMAKE_VERSION VERSION_GREATER 3.12) set_property(TARGET QueriesWithFixedLength PROPERTY CXX_STANDARD 20) endif()
То есть, если версия cmake новее, чем 3.12, то надо использовать C++20. Проверим версию cmake, используя Visual Studio 2022 command prompt, используя команду cmake --version:
if (CMAKE_VERSION VERSION_GREATER 3.12) set_property(TARGET QueriesWithFixedLength PROPERTY CXX_STANDARD 14) endif()
Еще добавил эту строчку:
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/input01.txt" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
потому что без нее не считывало входные файлы ("старым" методом все работало и так).
Комментариев нет:
Отправить комментарий