|
Link obj files
|
|||
---|---|---|---|
#18+
Задача: избавиться от внешних длл. Взята одна из них, в частности libffi.dll (версии 3.2) Сначала через DLL to Liv 3.0 получил lib. Потом скормил это в objconv.exe -lx libffi.lib, получил несколько обьектников. Вот беру из них нужный, libffi.obj, и пытаюсь сделать {$LINK libffi} Ругается на E2216 Can't handle section '.tls' in object file 'libffi.OBJ' секция пустая, IDA ее видит. Есть несколько методов, связанных с tls, что ушли в другой obj, видимо секция связана с ними. Впрочем, эта пустая секция есть во всех 4х обьектниках. Подскажите, можно как-то ее убрать? Локументацию на objconv пахал вдоль и поперек. Доку на родной tlib тоже, но он просто не хавает эту либу. Да, в OMF формат тоже конвертил. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 08:28 |
|
Link obj files
|
|||
---|---|---|---|
#18+
на всяк приложу файл... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 08:38 |
|
Link obj files
|
|||
---|---|---|---|
#18+
Vizit0r, Взять MemoryModule? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 10:58 |
|
Link obj files
|
|||
---|---|---|---|
#18+
Kazantsev Alexey Vizit0r, Взять MemoryModule? полезно, но не в моем случае. Мне очень желательно прилинковать именно обьектники. Впрочем, изначальный вопрос уже неактуален, вооружился студией, и пытаюсь скомпилить из сурсов, чтобы потом прилинковать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 11:05 |
|
Link obj files
|
|||
---|---|---|---|
#18+
Vizit0r, Распиши алгоритм? Тоже вот вопрос интересен. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 11:50 |
|
Link obj files
|
|||
---|---|---|---|
#18+
Vizit0r, я так линкую {$l libsqlite3.a} {$linklib libkernel32.a} {$linklib libmsvcrt.a} {$linklib libgcc.a} ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 12:23 |
|
Link obj files
|
|||
---|---|---|---|
#18+
MaratIsk Vizit0r, я так линкую {$l libsqlite3.a} {$linklib libkernel32.a} {$linklib libmsvcrt.a} {$linklib libgcc.a} это легко и просто, когда ты можешь скомпилировать под билдером, и взять из него обьектники. А когда нет - становится куда веселее. ziv-2014 Vizit0r, Распиши алгоритм? Тоже вот вопрос интересен. начинал с https://lifeinhex.com/static-linking-of-bassmod-in-delphi/ а дальше маны и гугл. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 19:05 |
|
Link obj files
|
|||
---|---|---|---|
#18+
MaratIsk, а, в твоем случае это вообще FPC с linklib. Это отдельная песня, к сожалению в Delphi отсутствующая( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 20:16 |
|
Link obj files
|
|||
---|---|---|---|
#18+
А не пробовали скомпилировать библиотеку в MinGW и слинковаться с объектными файлами? Правда, Delphi в таком случае желательно брать посвежее. http://rvelthuis.de/articles/articles-cobjs.html ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 22:18 |
|
Link obj files
|
|||
---|---|---|---|
#18+
от MinGW обьектники нормально не линкуются, орут про отсутствие 2х методов, что есть в соседнем обьектнике. Пробую сейчас MS VS ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2021, 13:14 |
|
Link obj files
|
|||
---|---|---|---|
#18+
прилинковал. Простые методы работают. В первом же методе чуть посложнее - выплыли проблемы откуда не ждали. В case switch. Если смотреть через IDA обьектник - там идет ссылка вида jmp ds:jpt_7A4[eax*4] ( FF 24 85 8C 0C 00 00) где .rdata:00000C8C jpt_7A4 А вот если уже в моем коде смотреть на отладке - там 010D4344 FF248524000000 jmp dword ptr [eax*4+$0024] ведет естественно в никуда, вот и ошибка. да и искал я содержимое этой джамп-таблицы в моем exe - не нашел. Или я чего-то не понимаю, но имхо линкер просто игнорит .rdata секцию при линковке. Бред какой-то, тогда ничего сложнее hello world не работало бы из прилинкованных обьектников. Взять тот же zlib, или regexp. Через dll все правильно, там адрес switch-таблицы, как и положено. Кто-то может подсказать, куда копать дальше? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2021, 23:31 |
|
|
start [/forum/topic.php?fid=58&msg=40109713&tid=2036899]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
1598ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 1959ms |
0 / 0 |