Хочу попробовать использовать bbv2 в своих проектах, но не хотелось бы терять такую вещь, как вывод предупреждений и ошибок в окна Output и Error List студии, с последующей возможностью по дабл-клику перейти к месту ошибки. Не подскажут ли гуру правильный способ организации работы с bjam и студией или же это вещи в их понимании не совместимые?
> Хочу попробовать использовать bbv2 в своих проектах, но не хотелось бы терять такую вещь, как вывод предупреждений и ошибок в окна Output и Error List студии, с последующей возможностью по дабл-клику перейти к месту ошибки. Не подскажут ли гуру правильный способ организации работы с bjam и студией или же это вещи в их понимании не совместимые?
Ну в Output вывод перенаправить — это ровно одну галку в кофигурировании external tool выставить. Прыгать по дабл-клику оно будет, если строки Output в имеют правильный формат — а для ошибок от компилятора формат изменится не должен. А вот Error List похоже накроется.
Posted via RSDN NNTP Server 2.0
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Экселенц wrote: > Хочу попробовать использовать bbv2 в своих проектах, но не хотелось бы > терять такую вещь, как вывод предупреждений и ошибок в окна Output и > Error List студии, с последующей возможностью по дабл-клику перейти к > месту ошибки. Не подскажут ли гуру правильный способ организации работы > с bjam и студией или же это вещи в их понимании не совместимые?
Делаешь makefile project и прописываешь туда bjam в команды строительства.
Здравствуйте, Cyberax, Вы писали:
C>Делаешь makefile project и прописываешь туда bjam в команды строительства.
C>Логи с ошибками нормально парсятся.
Сделал makefile project, команды прописал. По логике теперь надо чтобы при компиляции моего основного проекта использовались команды, прописанные в makefile project, но как это сделать? Обычный проект как-то можно связать с makefile-проектом?
Экселенц wrote: > bjam --v2 msvc-8.0 stdlib=stlport-5.2~msvc~8.0 debug link=shared > threading=multi linkflags=/MANIFEST:NO --with-filesystem
Что-то не то с квотированием. Попробуй заключить в кавычки командную
строку или /MANIFEST:NO.
Ну или просто создай вариант в Jamfile, куда все опции пропишешь.
Здравствуйте, Cyberax, Вы писали: C>Что-то не то с квотированием. Попробуй заключить в кавычки командную C>строку или /MANIFEST:NO.
C>Ну или просто создай вариант в Jamfile, куда все опции пропишешь.
Я перепробовал, кажется, все возможные варианты. Никакие кавычки не помогают, только если убрать первый '/', всё компилируется, но эта опция линкеру всё равно не попадает (смотрел в логах через -d +2).
Через Jamfile я и так верю, что заработает, это не интересно.
Я ещё msvc.jam правил, туда прописывал /MANIFEST:NO, так работает.
Экселенц wrote: > C>Ну или просто создай вариант в Jamfile, куда все опции пропишешь. > Я перепробовал, кажется, все возможные варианты. Никакие кавычки не > помогают, только если убрать первый '/', всё компилируется, но эта опция > линкеру всё равно не попадает (смотрел в логах через -d +2).
Могу сегодня вечером посмотреть что там внутри интерпретатора BJAM
творится. Скорее всего что-то не так с разбором строки.
> Через Jamfile я и так верю, что заработает, это не интересно.
Ну так ты определи вариант, назови его no_manifest и запускай "bjam
debug no_manifest"
Экселенц wrote: > C>Ну так ты определи вариант, назови его no_manifest и запускай "bjam > C>debug no_manifest" > Понятно, я просто ещё не разбирался, как варианты определять > А как всё-таки проект созданный через makefile project прицепить к > своему проекту, который нужно скомпилировать?
А через Dependency не помогает? Я просто не пробовал так делать, просто
сделал простенький макрос, который позволяет выбирать нужный вариант
билда и прописывает его в ключи текущего проекта.
Мне просто нужно было как-то тестировать приложение со многими
комбинациями строки запуска, мне надоело их постоянно прописывать
Здравствуйте, Cyberax, Вы писали:
C>А через Dependency не помогает? Я просто не пробовал так делать, просто C>сделал простенький макрос, который позволяет выбирать нужный вариант C>билда и прописывает его в ключи текущего проекта.
C>Мне просто нужно было как-то тестировать приложение со многими C>комбинациями строки запуска, мне надоело их постоянно прописывать
А можно немного поподробнее?
Что касается makefile project, то я до сей поры вообще не знал, что это такое, создал проект, прописал в нём строку для билда:
BuildCommandLine="bjam --v2 msvc-8.0 stdlib=stlport-5.2~msvc~8.0"
ну он эту строку запихал в vcproj-файл. И что мне теперь с этим делать, прописать, что мой основной проект зависит от этого makefile-проекта и тогда сборка будет осуществляться этой командой?
Я так понял, ты работаешь по другому. Что делает твой макрос? Прописывает, чтобы cpp-шники собирались не стандартным C/C++ Compiler Tool, а bjam с нужными тебе параметрами?
Ну я понял, что makefile project надо использовать непосредственно, т.е. прямо в него добавлять свои исходники и компилировать, мне просто раньше казалось, что он для этого не предназначен.
Есть ещё один совершенно элементарный вопрос, доку я читал, но так и не нашёл на него ответ. Как задать имя выходного файла, причём различное для debug и release режима? В бусте есть
rule tag ( name : type ? : property-set )
где это имя формируется, но где и когда это правило вызывается, я не нашёл...
Разобрался сам. Надо использовать свойство <tag>, между прочим, не описанное в документации userman.pdf (а буст у меня самый свежий из CVS), так же как и константы SHARED_LIBRARY, IMPORT_LIBRARY, EXE ит.д.