Что-то, о чем я пока не упомянул, - это удивительный факт, что, по крайней мере, в некоторых случаях .a-файлы и .lib-файлы на самом деле имеют одинаковый двоичный формат . Хотя я не смог найти ничего такого, что говорило бы на веб-сайте mingw, я заметил, что при попытке заставить 64-битный компилятор MS Visual C ++ cl.exe связать файл .dll, созданный с помощью компилятора mingw-w64 g ++, он, к счастью, принял командную строку
cl /EHsc /Ipath\to\include gmp_test.cpp path\to\lib\libgmp.dll.a
и полученный файл .exe работает правильно, как только я помещаю копию соответствующего файла .dll в текущий каталог. (Было пробормотано предупреждение «Предупреждение командной строки D9024: нераспознанный тип исходного файла 'путь \ к \ lib \ gmp-6.0.0 \ lib \ libgmp.dll.a', предполагается, что объектный файл".)
Еще одним свидетельством является то, что команда Linux file
сообщила о «текущем архиве архива» для нескольких файлов каждого расширения (.lib или .a), которые я пробовал.