eclipse cdt: добавить путь включения из pkg-config

я хочу добавить динамический путь конфигурации (сгенерированный из pkg-config) в мой проект. (это в основном для сторонних зависимостей, таких как boost, поэтому включение рабочей области не подходит, а файловая система не включает ни одну, потому что это будет жестко задано, и каждый разработчик должен будет изменить это вручную)

я нахожусь на свойства проекта-> общие ++-> пути и символы-> включает в себя вкладку-> добавить ...-> добавить путь к каталогу-> переменные, но я могу выбирать только среди существующих переменных, как я могу создать новую переменную, динамически генерируемую из программы командной строки? лайкpkg-config --cflags boost-1.43?

это легко сделать в netbeans; вы просто добавляете командную строку pkg-config с обратными кавычками в дополнительных опциях сборки, и она разрешает включение сборки, и даже теоретически она должна обновлять индексатор (хотя, если честно, в последний раз корректное обновление индексатора из pkg-config было включено) NetBeans 6,8, он был разбит на 6,9 и 6,9,1)

Я читаюэто сообщение StackOverflow но я все еще не уверен, как это помогает этому конкретному случаю

Я читаюгде-то что вы можете использовать $ (shell pkg-config ...) для генерации переменных окружения, но не знаете, где разместить команду

если нет простого решения, я попробуюскрипт в этом блоге

Кстати, я использую затмение helios -cdt 7

Спасибо!

Ответы на вопрос(4)

вы можете использовать $ (shell pkg-config--cflags your_libs) в:

Project properties->C/C++ Build->Settings->"Tools Settings" tab->**C Compiler**->Miscellaneous->Other Flags

а также

ты можешь использовать

$(shell pkg-config **--libs** your_libs) 

в

Project properties->C/C++ Build->Settings->"Tools Settings" tab->**C Linker**->Miscellaneous->Other Flags

если компоновщик не связывается, убедитесь (например, в окне консоли сборки), что флаги pkg-config появляются после объектов, которые нужно связать. Вы можете сделать это в свойствах-> C / C ++ Build-> Настройки -> вкладка «Настройки инструментов» ->C Linker-> Перемещение шаблона командной строки${FLAGS} к концу :

из этого (например):

${COMMAND} **${FLAGS}** ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} **${INPUTS}**

к этому :

${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} **${INPUTS} ${FLAGS}**

в eclipse 4.3.2 это выглядит так, как будто можно просто добавить

`pkg-config --libs <mylibname>`

в Project-> Properties-> C / C ++ Build-> Settings-> GCC {C | C ++} Linker-> Разное-> Флажки Linker

так же

`pkg-config --cflags <mylibname>`

в Project-> Properties-> C / C ++ Build-> Settings-> GCC {C | C ++} Компилятор-> Разное-> Другие флаги

Решение Вопроса

Поддержка Pkg-config наконец прибывает в CDT и будет завершена в августе.

http://code.google.com/p/pkg-config-support-for-eclipse-cdt/

 lurscher12 мая 2011 г., 17:09
хорошие новости!! спасибо за информацию .. я предполагаю, что это автоматически соединится с индексатором завершения кода?
 Petri Tuononen13 мая 2011 г., 11:16
Посмотрим. Текущий план заключается в том, что доступные пакеты отображаются на странице свойств, и пользователь должен проверить необходимые пакеты. Затем параметры автоматически передаются компилятору и компоновщику. Конечно, было бы здорово, если бы Eclipse сам выяснил, какие пакеты используются на основе исходного кода. Я держу это в уме. Любые другие предложения приветствуются.
 Petri Tuononen11 июн. 2011 г., 19:49
Привет, у меня есть отличные новости. Теперь вы можете протестировать бета-версию, которая должна работать нормально.marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt Просто перейдите в Свойства проекта -> Сборка C / C ++ -> Настройки -> Pkg-config и проверьте нужные вам пакеты. Обратная связь приветствуется.

что я нашел так это то, что вы можете сделать

project-> properties-> c ++ build-> переменные сборки

добавить новую переменную строкового типа. Называй как хочешь:

UNITTEST_CPP_CXXFLAGS

затем установите в качестве его значения: $ (shell pkg-config --cflags unittest-cpp)

Перейти к свойствам проекта -> C ++ General -> путь и символы, включает в себя. Выберите языки c ++, в противном случае по умолчанию используется исходный файл сборки. Нажмите добавить. В пути добавления каталога щелкните переменные ... (потому что мы хотим добавить только что созданную переменную)

введите имя переменной (UNITTEST_CPP_CXXFLAGS), нажмите ввод и ок

Когда вы перестраиваете результат, команда оболочки заменяется в опции -I (по крайней мере для цепочки инструментов gnu gcc), в общем случае вывод pkg-config может включать один или несколько ключей -I, так что это не будет работать. Перейдем в c ++ build-> settings-> настройки инструмента-> gcc c ++ compiler-> Прочее. Там добавьте $ {UNITTEST_CPP_CXXFLAGS} к другим флагам.

теперь будет добавлено включение, но нет никакой надежды на то, что индексатор будет просматривать эти включения!

Ваш ответ на вопрос