2015-04-16 3 views
3

Я создаю проект C++ с использованием Eclipse в ОС Windows, я также использую библиотеку Eigen Linear Algebra. Моя проблема связана с очень медленным временем компиляции Eigen (около 50 секунд).Предварительные компиляции собственных заголовков

Я пробовал эти предлагаемые решения:

Мне действительно нужно решение для этого, очень нецелесообразно ждать 47 сек каждый раз, когда я создаю проект что-то.

Любая идея глубоко оценена, спасибо.

+0

Предварительно скомпилированная поддержка заголовка является специфичной для компилятора. Какой компилятор и версия вы используете? А что именно не получилось из первого канала? – Angew

+0

@ Ангел. Я использую Cygwin C++ Compiler -g3. Что касается первой ссылки, я сделал все возможное, чтобы следовать ей, но это не дало мне никаких результатов, ничего не изменилось, я, возможно, допустил ошибку на шаге, где он говорит: «Затем перейдите к другому варианту, выберите конфигурацию выпуска и добавьте ... ». Я не был уверен, как построить свой путь в этой форме. –

ответ

0

Eigen - это библиотека шаблонов, что означает, что классы определены на основе параметров шаблона. Я не думаю, что вы могли бы прекомпилировать, не давая компилятору точно знать все возможные классы, которые вам нужны во всей кодовой базе.

В качестве альтернативы вы можете написать обертку для Eigen и объявить все типы, которые вы хотите, и использовать эту библиотеку. ОДНАКО, вы, вероятно, потеряете много преимуществ Эйгена (см. here, here и другие).

+0

Это * возможно использовать предварительно скомпилированные заголовки для ускорения составления шаблона, по крайней мере, с помощью компилятора, который выполняет поиск двухфазного имени правильно. Это может не ускорить создание экземпляра, но он все равно сохранит синтаксический анализ. И с кодом шаблона обычно используется много парсинга. – Angew

+0

@ Ангела достаточно честная. Тем не менее, второй пункт все еще действителен, хотя и опасен для производительности из-за потери шаблонов выражения. –

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

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