Вернуться на главную страницу
Настройка очень большого проекта (Firefox)
-
Рассмотрим импорт большого проекта на примере firefox 3.7. Принцип такой. Программа должна быть собрана с отладочной
информацией (для GCC - "-g3 -gdwarf-2", для Sun Studio - "-g"). После чего на полученное приложение можно будет
натравить автоматический анализатор проекта.
-
Приступим. У меня запущен OpenSolaris 2009.06 с
Sun Studio 12 update 1.Также установлены все библиотеки для сборки Firefox.
Исходники Firefox, например, можно скачать здесь -
mozilladeveloperpreview-3.7a4.source.tar.bz2.
Распакуем исходники и начнём настраивать переменные окружения. Для начала запустим терминал и перейдём в директорию с
исходниками. Выполним следующие команды:
export CC=/opt/sunstudio12.1/bin/cc
export CXX=/opt/sunstudio12.1/bin/CC
export PATH=/opt/sunstudio12.1/bin:$PATH
командой "export CC" мы установили какой C компилятор должен использоваться. "export CXX" укажет C++ компилятор.
Последней командой, на всякий случай, добавим путь к Sun Studio в переменную PATH. Если вы пользуетесь исключительно Linux с
GCC, то предыдущие команды вам не нужны. Теперь запустим сборку проекта:
./configure --enable-application=browser --enable-optimize="-g" --disable-ipc --disable-crashreporter
Для GCC нужно использовать --enable-optimize="-g3 -gdwarf-2". Если на вашей системе установлены все стороннии пакеты, нужные
для сборки Firefox, то в текущей папке должен появится Makefile. Теперь выполним самую долгую команду:
gmake -j 4
Спустя много минут компилятор закончит работу (по ходу я поправил один файл в котором забыли вставить нужный #include).
Теперь можно запускать NetBeans. Так как проект очень большой, то лучше NetBeans'у нужно выделить побольше памяти.
"-J-Xmx1500m" выделит 1500 мегабайт. Запускаем:
/opt/netbeans-6.9/bin/netbeans -J-Xmx1500m
-
Вызовем окно "New Project" и выберем "C/C++ Project with Existing Sources". Нажмём "Next"
-
Укажем путь к исходникам, компилятор которым мы собрали проект (Sun Studio и Oracle Solaris Studio - синонимы) и режим
"Custom" (Если выбрать Automatic, то сборка проекта начнётся заново и не всегда с нужными опциями).
-
Выберем режим "Using an existing makefile" и обязательно выключим опцию "Clean and Build after Finish". Так как мы уже собрали
проект и не хотим долго ждать снова.
-
Первое текстовое поле оставим без изменений. Во второе и третье добавим "gmake -f Makefile" и "gmake -f Makefile clean"
(так как NetBeans использует утилиту dmake, если выбран сановский компилятор. А данная программа не собирается с помощью dmake).
В последнее поле добавьте <ваш_путь_к_проекту>/dist/bin/firefox-bin.
-
Ничего не будем менять в этом окне
-
А здесь выберем "Automatic Configuration" (желающие могут поэкспериментировать с режимом "Manual Configuration").
-
В этом окне вы можете указать любое имя расположение для проекта.
-
После нажатия на кнопку Finish начинается создание проекта. Первые 5 минут NetBeans анализирует запускаемые и объектные файлы и
создаёт проект. Следующие 5 минут уйдут на анализ проекта нетбинсовским C/C++ парсером (причём проект за это время парсится 2
раза).
-
После окончания работы парсера, изменим некоторые настройки проекта. Выключим профайлер (Show profiling indicators during run).
Так как он может замедлять проект, а иногда и падать.
-
Установим LD_LIBRARY_PATH=<ваш_путь_к_проекту>/dist/bin. Так как для запуска проекта нужны некоторые динамические библиотеки
собранные вместе с Firefox'ом. Также выключим "Build First" (иначе перед каждым запуском проекта из NetBeans мы будем ждать
по 2 минуты, пока браузер будет заново линковаться).
-
Теперь можно убедиться, что наш проект собирается, запускается и в нём работает навигация по коду.
© 2008 - 2015 Солдатов Валерий Фёдорович
Ваши комментарии и замечания.