1

我的 Xcode 工作区中的递归 git 子模块存在问题。我认为 llvm 选择了错误的 .m 文件。

我想通过显示对象二进制文件中可用的方法来确认这一点。

我知道我可以ar -t myarchive.a用来显示.o静态库中的文件。有没有办法深入挖掘并显示特定 .o 上可用的方法符号?

4

1 回答 1

1

使用可以使用nm命令来显示.o.a文件中的符号。有关详细信息,请参见nm 手册页

$ 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()
于 2013-09-25T14:55:56.837 回答