nm - 显示在 .so 文件中声明符号的文件
nm - show file that declares a symbol in a .so file
nm
是否可以显示在.so文件中声明符号的文件?假设我有一些文件:
//file.cpp
int get_data();
int main(){
return 0;
}
如果我将这个文件编译成一个共享目标文件,file.so
,当我使用 nm -C file.so
时,我应该为 get_data
符号得到一个 "U"。 nm 是否也可以显示文件名?对于较大的项目,能够确定哪个文件正在声明未解析的符号会很有帮助。
If I compile this file into a shared object file, file.so, I should get a "U" for the get_data
symbol
你错了:因为没有引用 get_data
,你实际上不会得到 U
。
回答你的问题:file.cpp
引用 get_data
符号的信息已经消失,除非 你用调试信息编译了 file.cpp
。
如果这样做,您可以使用 objdump -dS file.so
找到 file.cpp
是引用的来源。
nm
是否可以显示在.so文件中声明符号的文件?假设我有一些文件:
//file.cpp
int get_data();
int main(){
return 0;
}
如果我将这个文件编译成一个共享目标文件,file.so
,当我使用 nm -C file.so
时,我应该为 get_data
符号得到一个 "U"。 nm 是否也可以显示文件名?对于较大的项目,能够确定哪个文件正在声明未解析的符号会很有帮助。
If I compile this file into a shared object file, file.so, I should get a "U" for the
get_data
symbol
你错了:因为没有引用 get_data
,你实际上不会得到 U
。
回答你的问题:file.cpp
引用 get_data
符号的信息已经消失,除非 你用调试信息编译了 file.cpp
。
如果这样做,您可以使用 objdump -dS file.so
找到 file.cpp
是引用的来源。