0
我在Ubuntu 16.04編譯libserial-0.6.0rc2從源代碼,我現在嘗試編譯一個簡單的測試程序:libserial未定義的參考符號
#include <SerialStream.h>
#include <iostream>
using namespace LibSerial;
int main(int argc, char** argv)
{
SerialStream serial_port;
serial_port.Open("/dev/ttyS0");
serial_port.SetBaudRate(SerialStreamBuf::BAUD_9600);
serial_port.SetCharSize(SerialStreamBuf::CHAR_SIZE_8);
serial_port.SetParity(SerialStreamBuf::PARITY_EVEN);
serial_port.SetNumOfStopBits(1);
serial_port.write("s", 1) ;
}
,我發現了以下錯誤:
[email protected]:~/scan/arduino$ gcc *.cpp -Wl,-
rpath -Wl,/usr/local/lib -L/usr/local/lib -lserial
/usr/bin/ld: /tmp/ccT3ucCm.o: undefined reference to symbol
'[email protected]@GLIBCXX_3.4'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO
missing from command line
collect2: error: ld returned 1 exit status
我花了一段時間編譯libserial,因爲顯然這是我不知道的SIP所需的依賴關係。我可以使用提供的makefile構建示例,但我無法使用已安裝的庫構建自己的示例。有沒有人有任何想法?
非常感謝!我感到非常愚蠢。特別是你對符號的解釋;我不知道demangling是如此簡單(我發現demangler.com)。爲了記錄,我還必須鏈接-pthread,因爲對pthread_mutex_trylock有未定義的引用。 –