我的Xcode工作区中存在递归git子模块的问题。我认为llvm正在选择错误的.m文件。
我想通过显示对象二进制文件中可用的方法来确认这一点。
我知道我可以使用ar -t myarchive.a
在静态库中显示.o
个文件。有没有办法深入深入并显示特定.o?
答案 0 :(得分:1)
使用可以使用nm
命令在.o
或.a
文件中显示符号。有关详细信息,请参阅nm
manpage。
$ nm build/IoEvent.o
(剪辑)
---------------- T __ZN9ChessCore18ChessCoreExceptionC1EPKcz
---------------- T __ZN9ChessCore18ChessCoreExceptionD0Ev
---------------- T __ZN9ChessCore18ChessCoreExceptionD1Ev
---------------- D __ZN9ChessCore7IoEvent11m_classnameE
---------------- T __ZN9ChessCore7IoEvent3setEv
---------------- T __ZN9ChessCore7IoEvent5resetEv
---------------- T __ZN9ChessCore7IoEventC1Ei
---------------- T __ZN9ChessCore7IoEventC1Ev
---------------- T __ZN9ChessCore7IoEventC2Ei
---------------- T __ZN9ChessCore7IoEventC2Ev
---------------- T __ZN9ChessCore7IoEventD0Ev
---------------- T __ZN9ChessCore7IoEventD1Ev
---------------- T __ZN9ChessCore7IoEventD2Ev
---------------- T __ZNK9ChessCore18ChessCoreException4whatEv
如果您正在使用C ++(我知道您不是),那么您可以使用c++filt
来解码这些符号名称:
$ c++filt __ZN9ChessCore7IoEvent5resetEv
ChessCore::IoEvent::reset()