nm是否可以在.so文件中显示声明符号的文件?假设我有一些文件:
//file.cpp
int get_data();
int main(){
return 0;
}如果我将这个文件编译成一个共享的对象文件file.so,当我使用nm -C file.so时,我应该得到get_data符号的"U“。nm也可以显示文件名吗?对于较大的项目,能够确定哪个文件正在声明未解决的符号将是有帮助的。
发布于 2018-04-12 03:54:36
如果我将这个文件编译成一个共享的对象文件file.so,我应该得到一个
get_data符号的"U“
您错了:因为没有引用get_data,所以实际上您不会为此获得一个U。
要回答您的问题:file.cpp引用的get_data符号的信息已经消失,除非您用调试信息编译了file.cpp。
如果是这样的话,您可以使用objdump -dS file.so来发现file.cpp是引用的发源地。
https://stackoverflow.com/questions/49778514
复制相似问题