gsl for windows

okunek

Скачал себе сабж. Что делать с файлами ".a" в папке lib? Что это вообще такое? Я че-то ваще не рюхаю... иль где про это написано, а то я поисковиками искал - ничего не нашел...

Ivan8209

Возможно, что это COFF.
Скорее всего, библиотека заточена под гнутые компиляторы.
Если ты хочешь использовать другой, то надо брать исходники.
---
"...Надо учиться --- не напрягаясь!.." Акад. А. А. Бучаченко.

Chupa

В винде это обычно называется ".lib" - библиотека объектных файлов.
Юзать нужно соответственно.

okunek

дык понятно, что lib.
то, что как раз мне и нужно - продается за бабки ... вот уроды.
я ща откопал исходники, но че с ними делать - надо разбираться...

Ivan8209

Подумай, может проще будет CygWin установить.
---
...Я работаю антинаучным аферистом...

okunek

хехе, час назад поставил
тока я тоже в этом нифига не шарю и надо разбираться...

Chupa

> дык понятно, что lib.
в чём тогда проблема?
зы контру не слушай

okunek

да в том, что там lib-ов нет.

Ivan8209

Ты уверен, что микрософтовы средства их возьмут?
---
...Я работаю антинаучным аферистом...

Chupa

формат архиватора ar они понимают
если утверждается, что библиотека под винду,
то внутри архива должны быть соответствующие объектные файлы

Chupa

> да в том, что там lib-ов нет
".a" это и есть ".lib"ы

okunek

я на 100 процентов не уверен, что они под винду.
в лориене я забил gsl и он выдал ссылочку на архив. А сам архив лежал в cygwin, вот я поэтому и предположил, что это для винды.

okunek

хм, ща попробую переименовать...

Ivan8209

OMF? COFF? PE?
Тогда надо линковать.
---
...Я работаю...

okunek

ёёёёёёёёё, заработало!:D
всем спасибо!

Ivan8209

Как заводил?
Через cc? ld?
---
"Прочитал сам --- передай товарищу!"
(Боевой листок)

okunek

хых, почти заработало...
я просто вставил у себя #pragma comment(lib,"libgsl.dll.a" линковщик ругаться перестал, но вывез мне warning:
libgsl.dll.a(d000912.o) : warning LNK4078: multiple '.text' sections found with different attributes (E0000020)

и после запуска - ошибка. Начал я смотреть отладчиком и не могу понять почему так происходит :
самой первой у меня запускается gsl_matrix_alloc. Вот кусок из отладчика :

_gsl_matrix_alloc:
00416000 FF 25 50 F3 41 00 jmp dword ptr [__imp__gsl_matrix_alloc (41F350h)]


так вот после выполнения этого джампа, EIP становится не на 0x0041F350, а на хрен знает куда вообще (0x0001F380). Что это вообще за гон?
Ладно, по-видимому это какие-то непонятные мне особенности работы винды, и походу не получится скомпилить майкрософтским компилятором прогу с использованием тех самых lib-ов.

Ivan8209

jmp dword ptr [xxxx] --- это косвенный переход.
IP = *(long*xxxx
а не
IP=xxxx.
То есть у тебя есть список точек перехода.
Почему у тебя разные флажки для секций стоят, не знаю.
Вообще, это относится к защите.
Возможно, у Микрософта другое понятие о построении программ, нежели у ГНУ.
---
...Я работаю антинаучным аферистом...
Оставить комментарий
Имя или ник:
Комментарий: