gcc 在 lib 中找不到函数

gcc cannot find function in lib

我正在尝试使用我已安装在 raspberry pi 上的 libmbus 制作 C 程序。在我的 /usr/lib 目录中,我有文件 libmbus.so,在我的 /usr/include 目录中,我有文件 ./mbus/mbus.h.

程序如下所示:

#include <stdio.h>
#include <mbus/mbus.h>

int main(void)
{
    mbus_handle* MbusHandle;

    MbusHandle = mbus_connect_serial("/dev/ttyS1");

    return 0;
}

当我尝试 运行 "gcc main.cpp -lmbus" 我得到:

main.cpp:(.text+0xe): undefined reference to `mbus_connect_serial(char const*)'

我试过运行

nm -D /usr/lib/libmbus.so

其中有

00009930 T mbus_connect_serial

所以函数 mbus_connect_serial 似乎是 libmbus.so 的一部分。

在头文件中函数mbus_connect_serial定义如下:

mbus_handle * mbus_connect_serial(const char * device);

我似乎无法弄清楚哪里出了问题。谁能指导我正确的方向?

如果您真的想创建一个 c 程序,请将 main.cpp 重命名为 main.c