我正在尝试进行基本的端口编程,有人建议我看一下 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/