我想從我的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
?
你可以嘗試找到'的std :: flush'? – Rakete1111
我懷疑'std :: endl'不能鏈接,因爲它只是'<<'\ n'<< std :: flush' – YSC
'std :: flush'似乎存在:'0000000000011bb0 T __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv' – sdgfsdh