LibSerial: не может получить доступ к функциям-членам SerialStream

Я пытаюсь сделать основное программирование портов, и мне предложили взглянуть на 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 просто отлично, но компилятор взрывается, когда я пытаюсь вызвать любой функция-член?

0

Решение

Это так

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
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]