c++ - LibSerial:无法访问 SerialStream 成员函数

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

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

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

例如以下代码 (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: 错误:“类 LibSerial::SerialStream”没有名为“isOpen”的成员

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

最佳答案

是这样的

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

关于c++ - LibSerial:无法访问 SerialStream 成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22415890/

相关文章:

c++ - ASIO signal_set对多个IO线程不可靠,取决于代码顺序?

C++ - 创建具有相同字符的特定大小的空终止 c 样式字符串的更好方法

c++ - 现代编译器优化如何将递归转换为返回常量?

c++ - 如何指定编译前默认包含的文件

c# - 串口通信 : polling serial port vs using serial port DataReceived event

c++ - 必须包含所有 "file.o"文件,其中有 "#include "file.h""

c++ - 一个处理 char* 和 wchar_t* 的函数

c++ - 管理 wiimote 的最佳图书馆是什么?

linux - 如何修改netcat的输入流?

c# - 在C#中检测Arduino端口