Я пытаюсь найти функции из моей стандартной библиотеки C++ по их искаженному имени. Я на MacOS, поэтому с помощью команды nm
я могу осмотреть dylib
:Где std :: endl в моей скомпилированной стандартной библиотеке?
nm -g /usr/local/lib/libc++.dylib
nm -g /usr/local/lib/libc++abi.dylib
В выходе, я могу найти подогнанные имена для std::cout
:
0000000000079ec0 S __ZNSt3__14coutE
0000000000079f60 S __ZNSt3__15wcoutE
etc...
Однако я не нахожу Записи для std::endl
.
Интересно, что мой LLVM IR переводчик также не может найти std::endl
, хотя std::cout
работает отлично:
LLVM ERROR: Program used external function
'__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_' which could not be resolved!
Где я должен ожидать, чтобы найти std::endl
на моей системе?
Вы можете попытаться найти 'зЬй :: flush'? – Rakete1111
Я подозреваю, что 'std :: endl' не связывается, поскольку это просто' << '\ n' << std :: flush' – YSC
'std :: flush' похоже присутствует:' 0000000000011bb0 T __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv' – sdgfsdh