如何在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
```
现在如何查看符号?