Avatar ·

如何在Linux上查看.so文件中的符号列表(函数、类)

大家好!我是C++新手,刚开始接触Linux上的动态库(.so)。我有一个由多个文件编译而成的库,想检查它导出了哪些函数和类,即其他程序可用的符号。 问题:我用g++编译了库`libmylib.so`,但尝试链接测试程序时,链接器报错“undefined reference”。我怀疑函数名被修饰(name mangling)了,或者我没有正确将它们声明为extern "C"。 我用来构建库的示例代码: ```cpp // mylib.h #pragma once void hello(); int add(int a, int b); ``` ```cpp // mylib.cpp #include "mylib.h" #include void hello() { std::cout << "Hello from lib!" << std::endl; } int add(int a, int b) { return a + b; } ``` 编译命令: ```bash g++ -shared -fPIC mylib.cpp -o libmylib.so ``` 现在如何查看符号?