Моя программа должна связываться с последовательным устройством. Я разрабатываю его на Ubuntu 14.04 LTS. Я нашел libserial и попытался использовать его, но он не компилируется. Я загрузил, скомпилировал и установил v0.6.0rc2. Да, это rc, но он более популярен на sourceforge, и стабильные версии очень старые. Если вы знаете лучшую библиотеку, сообщите мне об этом в комментариях.Как скомпилировать libserial на linux?
Приведенный ниже код согласно Документов оленьей коже компиляции:
#include <SerialStream.h>
//
using namespace LibSerial ;
main()
{
SerialStream my_serial_stream ;
//
// Open the serial port for communication.
//
my_serial_stream.Open("/dev/ttyS0") ;
}
Это ошибка, я получаю:
[email protected]:~$ g++ test.cpp
/tmp/ccyWIbXN.o: In function `main':
test.cpp:(.text+0x17): undefined reference to `LibSerial::SerialStream::SerialStream()'
test.cpp:(.text+0x6d): undefined reference to `LibSerial::SerialStream::Open(std::string, std::_Ios_Openmode)'
test.cpp:(.text+0x9a): undefined reference to `LibSerial::SerialStream::~SerialStream()'
test.cpp:(.text+0xd6): undefined reference to `LibSerial::SerialStream::~SerialStream()'
collect2: error: ld returned 1 exit status
Я изменил линию в вопросе my_serial_stream.Open("/dev/ttyS0" , ios::out) ;
и добавили имен std
, Теперь я получаю эту ошибку:
[email protected]:~$ g++ test.cpp
/tmp/ccUhSQVA.o: In function `main':
test.cpp:(.text+0x17): undefined reference to `LibSerial::SerialStream::SerialStream()'
test.cpp:(.text+0x5f): undefined reference to `LibSerial::SerialStream::Open(std::string, std::_Ios_Openmode)'
test.cpp:(.text+0x8c): undefined reference to `LibSerial::SerialStream::~SerialStream()'
test.cpp:(.text+0xc8): undefined reference to `LibSerial::SerialStream::~SerialStream()'
collect2: error: ld returned 1 exit status