Невозможно связать файл архива, но можно связать отдельные объектные файлы

Я работал над проектом по созданию исполняемого файла Windows, используя mingw-w64. Я решил, что хочу протестировать использование libtins для проекта и загрузил файл библиотеки (.lib) с веб-сайта libtins. Файл .lib, скомпилированный с использованием VisualStudio2015. Я хотел статически связать библиотеку, и связывание не позволило разрешить неопределенные ссылки, которые я использовал. Позже я узнал, используя nm в файле библиотеки, что VisualStudio2015 меняет символы по-другому, чем MinGW. Затем я скомпилировал libtins из исходного кода, используя MinGW. Тем не менее, неопределенные ссылки по-прежнему не удалось разрешить после попытки связать с недавно скомпилированной библиотекой. Используя nm, я мог видеть, что неопределенные символы в моих объектных файлах совпадают с необходимыми символами, найденными в библиотеке, но файлы не могут соединиться в исполняемый файл. Затем я использовал ar для извлечения объектных файлов из библиотеки и медленно добавил необходимые объектные файлы, и в конце концов исполняемый файл связался и работал нормально.

Я также нашел это ответ и связывание всего архива также удалось. Какие обстоятельства могут вызвать такую ​​проблему? Я могу ссылаться на отдельные объектные файлы, но не на библиотечный архив, в котором хранятся эти файлы, или на весь архив, но не на отдельные компоненты внутри него. Чем можно объяснить это поведение?

Редактировать:

связывание не удается с этой командой

/usr/local/Cellar/mingw-w64/5.0.3/bin/i686-w64-mingw32-g++ -static -L/usr/local/Cellar/mingw-w64/5.0.3/toolchain-i686/mingw/lib -L../../libtins/lib -L../../wpcap/Lib/ -o dist/test.exe obj/main.o obj/test.o -ltins -liphlpapi -lwpcap -lws2_32 -lpthread -lntdll -lmsvcrt -lstdc++

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector