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