Я пытаюсь следовать ответу, данному здесь , чтобы объединить несколько статических библиотек в один архив под MinGW64. В частности, я использую CMake и задаю следующую команду:
add_custom_command(
OUTPUT ${COMBINED_CORE_LIB_NAME}
COMMAND ${AR} -crs ${COMBINED_CORE_LIB_NAME} ${CORE_LIB_TARGET_FILES}
DEPENDS ${DILIGENT_CORE_INSTALL_LIBS_LIST}
COMMENT "Combining core libraries..."
)
Также, следуя рекомендациям здесь , я не использую фондовую ар, а скорее перекрестную ар:
find_program(AR NAMES x86_64-w64-mingw32-gcc-ar)
Однако, что бы я ни делал, ar отказывается генерировать индекс, и каждый раз, когда я пытаюсь скомпоновать созданную библиотеку, я получаю эту ошибку:
error adding symbols: Archive has no index; run ranlib to add one
Запуск ranlib в соответствии с рекомендациями: либо один из них, либо x86_64-w64-mingw32-gcc-ranlib не имеет значения.
Я потратил 15 минут, чтобы заставить это работать с MSVC и lib.exe, и 8 часов боролся с MinGW. Любое предложение будет высоко оценено.
[Редактировать]: Оказалось, что эта проблема на самом деле не специфична для MinGW и также очень похожа на Linux.