crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> искажения имён функций в LIB-файлах, и как с ними жить.
Litkevich Yuriy
  опции профиля:
сообщение 11.7.2011, 16:53
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


проделал этот же трюк, получил ошибку:
Цитата
tmp/release/mainwindow.o:mainwindow.cpp:(.text+0x19): undefined reference to `TCloseDesign'
tmp/release/mainwindow.o:mainwindow.cpp:(.text+0x309): undefined reference to `TCloseDesign'
tmp/release/mainwindow.o:mainwindow.cpp:(.text+0x3cc): undefined reference to `TOpenDesign'
...


П.С.
вспомнил, что когда-то у меня была такая ошибка.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Danila_Bagrofff
  опции профиля:
сообщение 11.7.2011, 17:23
Сообщение #12


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 16.4.2009
Из: Нижний Новгород
Пользователь №: 690

Спасибо сказали: 0 раз(а)




Репутация:   0  


такое ощущение, что не находится данная функция в либе.

Попробовал реимпов получить .a файл. Он у меня пустой =(((

Может, поможите .a файл сделать?
Пробую сделать так:

reimp -d Dbx32.lib
dlltool -D Dbx32.dll -d Dbx32.def -l Dbx32.a -k

Но dbx32.a - пустой =((



Litkevich Yuriy,
А extern "C" включено, или выключено у тебя?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.7.2011, 17:59
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Danila_Bagrofff @ 11.7.2011, 20:23) *
А extern "C" включено, или выключено у тебя?
присутсвует
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 11.7.2011, 18:00
Сообщение #14


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Danila_Bagrofff @ 11.7.2011, 16:28) *
Подскажите, где я теперь косяк?

ты сначала уточни, что у тебя за проблема:
что ты загружаешь, как загружаешь, в какой системе и чем оно собрано и где и как ты собираешь свой проект.
я так понимаю, у тебя венда и мингв. под 32 бита (кстати, битность - ещё одна проблема во взаимодействии библиотек).

вопрос в том, чем собрана библиотека, которую загружаешь. и что оттуда экспортируется (классы, функции, данные)?

Сообщение отредактировал Iron Bug - 11.7.2011, 18:00
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.7.2011, 18:01
Сообщение #15


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


к стати, из твоей же ссылки, чувак пишет что изменение декларации привело к новым проблемам по-этому он поступил так:
Цитата
So I found another way out,
with pexports I create a .def file
in the .def file I add a @nn decoration to each function by hand
I create a import library with dlltool with the -k switch

Now it works but I've to do the step 2 by hand, do you know how I can get this done by some routine?
(yes, I know I could write down a routine by myself, but why bother if it already exists?)


Цитата(Iron Bug @ 11.7.2011, 21:00) *
чем собрана библиотека, которую загружаешь
какой-то старой студией
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Danila_Bagrofff
  опции профиля:
сообщение 12.7.2011, 9:01
Сообщение #16


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 16.4.2009
Из: Нижний Новгород
Пользователь №: 690

Спасибо сказали: 0 раз(а)




Репутация:   0  


- проблема вызова функции (это фактически API для работы с P-CAD) из библиотеки dbx32.dll (dbx32.lib)
- чем собрана уже уточнили =)

Litkevich Yuriy,
а у меня че-то перестала .a либа собираться =((( В чем трабла не пойму...

Litkevich Yuriy,
А вы пробовали аналогично ручками поправить, как там дефник и подгузить .a либу?

Может, если у вас получится, дадите .a файл?) Вместе с другими исходниками. Был бы благодарен. Дальше бы пробовал побеждать =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.7.2011, 9:25
Сообщение #17


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


я a-файл вообще не делал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Danila_Bagrofff
  опции профиля:
сообщение 12.7.2011, 10:39
Сообщение #18


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 16.4.2009
Из: Нижний Новгород
Пользователь №: 690

Спасибо сказали: 0 раз(а)




Репутация:   0  


Litkevich Yuriy,
а если попробовать все-таки преобразовать либу под mingw формат?...

У меня почему-то никак на выходе не получается нормальный .a файл. Пустой и все... =(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 12.7.2011, 14:11
Сообщение #19


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Litkevich Yuriy @ 11.7.2011, 20:01) *
какой-то старой студией

у разных студий разные форматы декорирования. последние студии поддерживают новый стандарт, но отличаются от старых. я не помню точно, кажется, начиная с 6-й студии пошёл новый формат. но может, и после неё.

Сообщение отредактировал Iron Bug - 12.7.2011, 14:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 14:06