2010-09-16 3 views
1

Я столкнулся с ошибкой в ​​строках Windows CMake/MinGW, где количество объектных файлов, отправленных в компоновщик, приводит к тому, что список аргументов превышает максимальные 32 тыс. Символов, которые позволяет API Windows , Это проявляется как удивительно бесполезная ошибка «Ошибка выполнения ссылки: ошибка параметра».Работайте для максимальной длины аргумента при связывании с win32

Кто-нибудь сталкивался с этим раньше и нашел обходное решение, что не предполагает реорганизацию путей проекта или его разделение на библиотеки (как обе много работы)?

Например, я знаю, что ld.exe принимает параметр @file для передачи аргументов, но может ли mingw-make использовать это, когда аргументы слишком длинны?

Работает ли под msys/sh.exe вокруг этого ограничения?

+0

Это поможет узнать, какой генератор CMake вы используете. MinGW makefiles? MSYS makefiles? nmake makefiles? –

+0

Вместо того, чтобы сообщать mingw-make использовать файлы @response, когда аргументы становятся слишком длинными, почему бы просто не использовать их все время и не сохранять проблемы? – Reinderien

+0

@Jack: make-файлы MingGW, но также не удалось выполнить проект кодовых блоков (также на основе MinGW). Я не думаю, что этот проект основывается на msys, но я буду тестировать. @Reinderien: потому что тогда на меньших ссылках трудно отлаживать ошибки компоновщика (поскольку команда не показывала файлы/args под make VERBOSE = 1) – SpliFF

ответ

0

Если я правильно прочитал this bug report, это известная проблема и исправлена. Я не уверен, что поле версии продукта относится к версии с указанием ошибки или версии, исправляющей ошибку.

+1

Эта ошибка была исправлена ​​в CMake 2.8.2 – RobertJMaynard

+0

А, это хорошо, что облегчает то (в настоящее время я использую 2.6). – SpliFF

 Смежные вопросы

  • Нет связанных вопросов^_^