MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Борьба с ошибкой линковки "In function ... undefined reference to" при сборке с заранее скомпиленными библиотеками
06.11.2008
13:53
Текстовые метки: программирование, язык, c++
Раздел: Компьютер - Программирование - Язык C++

Имеем проект, в который, в частности, включены файлы

com_port.h

libcomport.a

sas_iface.h

libsasiface.a

В *.a архивах лежат скомпиленные в C++ библиотеки. Если при линковке командой

g++ -L/usr/X11R6/lib -o billsys.o ... timelib.o libbill.a ... libcomport.a libsasiface.a -lGL ... -lusb

Получаются ошибки вида

libsasiface.a(sas_iface.o): In function `CSasIface::Init(ComPort_t, ComPortDevice_t)':

sas_iface.cpp undefined reference to `CComPort::CComPort()'

sas_iface.cpp undefined reference to `CComPort::GetComDevice(ComPortDevice_t, ComPort_t)'

sas_iface.cpp undefined reference to `CComPort::~CComPort()'

sas_iface.cpp undefined reference to `CComPort::~CComPort()'

collect2: ld returned 1 exit status

То для исправления этой ошибки нужно изменить последовательность перечисления линковочных файлов. В данном случае, вместо

libcomport.a libsasiface.a

надо прописать

libsasiface.a libcomport.a

и линковка произойдет без ошибок.

Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования