Я столкнулся с ошибкой в строках Windows CMake/MinGW, где количество объектных файлов, отправленных в компоновщик, приводит к тому, что список аргументов превышает максимальные 32 тыс. Символов, которые позволяет API Windows , Это проявляется как удивительно бесполезная ошибка «Ошибка выполнения ссылки: ошибка параметра».Работайте для максимальной длины аргумента при связывании с win32
Кто-нибудь сталкивался с этим раньше и нашел обходное решение, что не предполагает реорганизацию путей проекта или его разделение на библиотеки (как обе много работы)?
Например, я знаю, что ld.exe принимает параметр @file для передачи аргументов, но может ли mingw-make использовать это, когда аргументы слишком длинны?
Работает ли под msys/sh.exe вокруг этого ограничения?
Это поможет узнать, какой генератор CMake вы используете. MinGW makefiles? MSYS makefiles? nmake makefiles? –
Вместо того, чтобы сообщать mingw-make использовать файлы @response, когда аргументы становятся слишком длинными, почему бы просто не использовать их все время и не сохранять проблемы? – Reinderien
@Jack: make-файлы MingGW, но также не удалось выполнить проект кодовых блоков (также на основе MinGW). Я не думаю, что этот проект основывается на msys, но я буду тестировать. @Reinderien: потому что тогда на меньших ссылках трудно отлаживать ошибки компоновщика (поскольку команда не показывала файлы/args под make VERBOSE = 1) – SpliFF