Название: Помогите слинковать! Отправлено: jeddite от Май 21, 2007, 16:37 Проблема такая, есть некое АПИ к одной хрене в виде библиотек и хедеров соответственно, и мне нужно собрать либу с использованием этого апи...в результате вот такое получается:
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -shared -Wl,--out-implib,liblib.a -o "lib.dll" build\.obj\command.o build\.obj\connection.o build\.obj\date.o build\.obj\recordset.o "c:\libinterface.lib" Creating library file: liblib.a build\.obj\command.o(.text+0x25b):command.cpp: undefined reference to `inter@20' build\.obj\command.o(.text+0x748):command.cpp: undefined reference to `inter@20' build\.obj\command.o(.text+0xe8f):command.cpp: undefined reference to `DECTOSTR@ 20' build\.obj\command.o(.text+0xffc):command.cpp: undefined reference to `TICKTOSTR F@12' build\.obj\command.o(.text+0x138b):command.cpp: undefined reference to `LongToDe c@8' build\.obj\command.o(.text+0x13f1):command.cpp: undefined reference to `DECTOSTR @20' build\.obj\command.o(.text+0x1703):command.cpp: undefined reference to `LongToDe c@8' build\.obj\command.o(.text+0x1795):command.cpp: undefined reference to `DECTOSTR @20' build\.obj\command.o(.text+0x1a25):command.cpp: undefined reference to `DblToDec @12' build\.obj\command.o(.text+0x1a84):command.cpp: undefined reference to `DECTOSTR @20' build\.obj\command.o(.text+0x1d0e):command.cpp: undefined reference to `DblToDec @12' build\.obj\command.o(.text+0x1d67):command.cpp: undefined reference to `DECTOSTR @20' build\.obj\command.o(.text+0x1fc6):command.cpp: undefined reference to `STRTODEC @8' build\.obj\command.o(.text+0x2caf):command.cpp: undefined reference to `inter@20 ' build\.obj\command.o(.text+0x390d):command.cpp: undefined reference to `inter@20 ' build\.obj\command.o(.text+0x39e1):command.cpp: undefined reference to `inter@20 ' build\.obj\command.o(.text+0x3b33):command.cpp: undefined reference to `inter@20 ' build\.obj\command.o(.text+0x3c57):command.cpp: undefined reference to `inter@20 ' build\.obj\command.o(.text+0x3e4c):command.cpp: more undefined references to `in ter@20' follow build\.obj\command.o(.text+0x48c9):command.cpp: undefined reference to `STRTODEC @8' build\.obj\command.o(.text+0x48d8):command.cpp: undefined reference to `DecToDbl @8' build\.obj\command.o(.text+0x49dd):command.cpp: undefined reference to `STRTODEC @8' build\.obj\command.o(.text+0x49ef):command.cpp: undefined reference to `DecToDbl @8' build\.obj\command.o(.text+0x52ed):command.cpp: undefined reference to `CRecordS etPrivate::clear()' build\.obj\command.o(.text$_ZN15CCommandPrivate9set_valueEtP11ARGPROC_OUTPh[CCom mandPrivate::set_value(unsigned short, ARGPROC_OUT*, unsigned char*)]+0x1b2):com mand.cpp: undefined reference to `DECTOSTR@20' build\.obj\command.o(.text$_ZN15CCommandPrivate9set_valueEtP11ARGPROC_OUTPh[CCom mandPrivate::set_value(unsigned short, ARGPROC_OUT*, unsigned char*)]+0x305):com mand.cpp: undefined reference to `TICKTOSTRF@12' build\.obj\connection.o(.text+0x3bd):connection.cpp: undefined reference to `int er@20' build\.obj\connection.o(.text+0x679):connection.cpp: undefined reference to `int er@20' build\.obj\connection.o(.text+0x7ca):connection.cpp: undefined reference to `int er@20' build\.obj\connection.o(.text+0x88d):connection.cpp: undefined reference to `int er@20' build\.obj\connection.o(.text+0x93d):connection.cpp: undefined reference to `int er@20' build\.obj\connection.o(.text+0x9ed):connection.cpp: more undefined references t o `inter@20' follow build\.obj\recordset.o(.text+0x2de8):recordset.cpp: undefined reference to `DecT oDbl@8' build\.obj\recordset.o(.text+0x2f01):recordset.cpp: undefined reference to `DecT oDbl@8' build\.obj\recordset.o(.text+0x3427):recordset.cpp: undefined reference to `DECT OSTR@20' build\.obj\recordset.o(.text+0x3840):recordset.cpp: undefined reference to `inte r@20' build\.obj\recordset.o(.text+0x3a9f):recordset.cpp: undefined reference to `inte r@20' build\.obj\recordset.o(.text+0x3c69):recordset.cpp: undefined reference to `TICK TOSTRF@12' build\.obj\recordset.o(.text+0x3db5):recordset.cpp: undefined reference to `TICK TOSTRF@12' build\.obj\recordset.o(.text+0x4684):recordset.cpp: undefined reference to `inte r@20' collect2: ld returned 1 exit status mingw32-make: *** [lib.dll] Error 1 Как видно из вывода программа скомпилилась, но при линковке не находит точки входа функций, в библиотеке. Я говорил с разрабочиком апи он сказал, что проблема в формате имени функции и что нужно как-то по длл-кам собрать новую либу и подключить ее, но он не помнит как это делать..и вспоминать не хочет..\ ЗЫ собираю все это под виндой + мингв. Название: Re: Помогите слинковать! Отправлено: Icoz от Август 19, 2007, 18:32 здесь обсасывается подобная тема, может чего для себя найдешь.
Только сначала все прочитай внимательно, потом вопросы задавай! http://prog.org.ru/forum/index.php/topic,6032.0.html (http://prog.org.ru/forum/index.php/topic,6032.0.html) Название: Re: Помогите слинковать! Отправлено: Icoz от Сентябрь 24, 2007, 15:13 Ну что? Ты свою проблему решил?
|