首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LibSerial:无法访问SerialStream成员函数

LibSerial:无法访问SerialStream成员函数
EN

Stack Overflow用户
提问于 2014-03-14 21:17:22
回答 1查看 1.2K关注 0票数 0

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

我构建并安装了这个包,但是访问任何SerialStream成员函数都有问题。

例如,以下代码(ls_ex.cpp)失败:

代码语言:javascript
复制
#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;
}

我是这样编的:

代码语言:javascript
复制
g++ -o ls_ex ls_ex.cpp /usr/local/lib/libserial.a /usr/local/lib/libserial.so

当我编译时,我会得到以下错误:

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

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

EN

回答 1

Stack Overflow用户

发布于 2014-03-14 21:31:55

就像这样

代码语言:javascript
复制
g++ -o ls_ex ls_ex.cpp -lserial -L/usr/local/lib/

如果您希望使用.a而不是.so

代码语言:javascript
复制
g++ -o ls_ex ls_ex.cpp -static -lserial -L/usr/local/lib/

也一定要将包含指定为SerialStream.h

代码语言:javascript
复制
 g++ -o ls_ex ls_ex.cpp -static -lserial -L/usr/local/lib/ -I/path/to/SerialStream
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22415890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档