私のプログラムは、シリアル デバイスと通信する必要があります。Ubuntu 14.04 LTS で開発しています。libserial を見つけて使用しようとしましたが、コンパイルできません。v0.6.0rc2 をダウンロード、コンパイル、インストールしました。ええ、それは rc ですが、sourceforge でより人気があり、安定版リリースは非常に古いものです。より良いライブラリを知っている場合は、コメントで教えてください。
ドキュメントに従って以下に示すコードはコンパイルされません。
#include <SerialStream.h>
//
using namespace LibSerial ;
main()
{
SerialStream my_serial_stream ;
//
// Open the serial port for communication.
//
my_serial_stream.Open( "/dev/ttyS0" ) ;
}
これは私が得るエラーです:
dalton@dalton-SVF14212SNW:~$ 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 ) ;
namespace を追加しましstd
た。今、私はこのエラーを受け取ります:
dalton@dalton-SVF14212SNW:~$ 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