LibSerial:无法访问SerialStream成员函数

时间:2014-03-14 21:17:23

标签: c++ serial-port g++ libserial

我正在尝试进行基本的端口编程,有人向我建议我看一下LibSerial。

我构建并安装了软件包,但是我在访问任何SerialStream成员函数时遇到问题

e.g。以下代码(ls_ex.cpp)失败:

#include <SerialStream.h>
#include <iostream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cerrno>
using namespace std;
using namespace LibSerial;

int main(int count, char* parms[])
{
    if (count != 2)
        exit(1);

    //open port
    string fname = parms[1];
    SerialStream port(fname);
    cout << port.isOpen() << endl;
    port.Close();

    return 0;
}

我正在编译它:

g++ -o ls_ex ls_ex.cpp /usr/local/lib/libserial.a /usr/local/lib/libserial.so

编译时,我收到以下错误:

ls_ex.cpp:在函数'int main(int,char **)'中:    ls_ex.cpp:45:15:错误:'class LibSerial :: SerialStream'没有名为'isOpen'的成员

我认为我编译错了,因为它很容易查看代码并看到isOpen()确实是公开的。另外,为什么我甚至能够实例化SerialStream,但是当我尝试调用任何成员函数时,编译器会爆炸?

1 个答案:

答案 0 :(得分:2)

就像这样

g++ -o ls_ex ls_ex.cpp -lserial -L/usr/local/lib/

如果您想使用.a代替.so

g++ -o ls_ex ls_ex.cpp -static -lserial -L/usr/local/lib/

请务必同时为您的SerialStream.h指定

 g++ -o ls_ex ls_ex.cpp -static -lserial -L/usr/local/lib/ -I/path/to/SerialStream