Size: a a a

2020 August 25

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
Господа, у меня возник вопрос относительно линковки библиотек в винде. При создании динамической библиотеки я линкую в нее статическую, и в итоге вижу что из динамической экспортируются не только те функции, что мною запланированы, но и те, что экспортирует статическая библиотека.
Например, я при создании библиотеки dynamic.dll с экспортируемой функцией foo() я линкую в нее static.lib из которой экспортируется bar(). В итоге, из dynamic.dll экспортируются и foo(), и bar().
По какой-то причине это происходит не со всеми библиотеками. Решение наверняка элементарное, но не могу к нему прийти
Среда и компилятор MSVC 2017
Давай ещё раз, с начала.
источник

A

Aleksandr in supapro.cxx
Есть a.dll, в котору слинкована СТАТИЧЕСКАЯ библиотека b.lib. То, что b.lib статическая, я могу убедиться посмотрев на секцию импорта a.dll
источник

A

Aleksandr in supapro.cxx
так?
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
Господа, у меня возник вопрос относительно линковки библиотек в винде. При создании динамической библиотеки я линкую в нее статическую, и в итоге вижу что из динамической экспортируются не только те функции, что мною запланированы, но и те, что экспортирует статическая библиотека.
Например, я при создании библиотеки dynamic.dll с экспортируемой функцией foo() я линкую в нее static.lib из которой экспортируется bar(). В итоге, из dynamic.dll экспортируются и foo(), и bar().
По какой-то причине это происходит не со всеми библиотеками. Решение наверняка элементарное, но не могу к нему прийти
Среда и компилятор MSVC 2017
Вот эта библиотека  ftdichip -- это что за библиотека вообще? По смыслу?
источник

A

Aleksandr in supapro.cxx
для взаимодействия с железками
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
Есть a.dll, в котору слинкована СТАТИЧЕСКАЯ библиотека b.lib. То, что b.lib статическая, я могу убедиться посмотрев на секцию импорта a.dll
Нет, не можешь...
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
Есть a.dll, в котору слинкована СТАТИЧЕСКАЯ библиотека b.lib. То, что b.lib статическая, я могу убедиться посмотрев на секцию импорта a.dll
Ты можешь кстати дамп бином посмотреть на .lib и прямо или косвенно убедится, это библиотека импорта или статическая.
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
для взаимодействия с железками
Что конкретнее она делает?
источник

ПК

Побитый Кирпич... in supapro.cxx
да там по размеру понятно - импорта весит <100 КБ
источник

ПК

Побитый Кирпич... in supapro.cxx
другое дело что у неё имя то же самое и можно провтыкать
источник

A

Aleksandr in supapro.cxx
Ilia Zviagin
Нет, не можешь...
если b.lib не статическая, а используется для линковки с некоторой b.dll (или другим именем) - в секции импорта a.dll появится соответствующий пункт импорта. Нет?
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
для взаимодействия с железками
Ладно, дай я погляжу на этот архив
источник

A

Aleksandr in supapro.cxx
Побитый Кирпич
да там по размеру понятно - импорта весит <100 КБ
1027798 байт
источник

A

Aleksandr in supapro.cxx
Ilia Zviagin
Что конкретнее она делает?
обмен данными с чипами FTDI
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
если b.lib не статическая, а используется для линковки с некоторой b.dll (или другим именем) - в секции импорта a.dll появится соответствующий пункт импорта. Нет?
НЕТ, потому что ДА только если твоя библиотека a.dll  ИСПОЛЬЗУЕТ какие-то символы из b.dll
источник

A

Aleksandr in supapro.cxx
она и использует
источник

A

Aleksandr in supapro.cxx
иначе я бы и тред этот не поднял
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
она и использует
Тогда что-то не так...
источник

IZ

Ilia Zviagin in supapro.cxx
Aleksandr
иначе я бы и тред этот не поднял
дай подумать
источник

VR

Vladyslav Ryuzaki in supapro.cxx
Для чего такое желание спрятать символы вообще?)
источник