我构建了一个名为InterfaceLayer.so的动态库.我打电话的时候:
> nm InterfaceLayer
Run Code Online (Sandbox Code Playgroud)
作为输出,我得到一些看起来像这样的符号:
00000e28 T _Z5startv
Run Code Online (Sandbox Code Playgroud)
虽然我期待它是" 开始 ",就像我在代码中定义的函数的名称一样.
有线索吗?
TKZ
seh*_*ehe 12
那是因为C++名称错误
nm -C
Run Code Online (Sandbox Code Playgroud)
贬低他们.
为了防止名称损坏,
.
my.h
extern "C"
{
void start();
void finish();
}
Run Code Online (Sandbox Code Playgroud)
这会给他们"C"联动,意味着他们不能超载,不能通过引用传递,没有c ++ :)