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
我正在尝试使用我已安装在 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