2012-03-04 3 views
0

У меня возникла проблема с созданием простой программы на C++, которая проверяет регулярное выражение из библиотеки boost. Проблема, с которой я сталкиваюсь, возникает на этапе связывания, и я не знаю достаточно, чтобы исправить ошибку самостоятельно.Использование библиотек регулярных выражений C++ Boost в Arch Linux

В программе .cpp, которая использует регулярные выражения, я использовал следующую строку include.

#include <boost/regex.hpp> 

Я не знаю достаточно, чтобы выяснить, какую команду я должен использовать для создания программы с использованием g ++. Я попытался использовать следующую командную строку (и ее варианты) для создания программы.

g++ -I/usr/include/regex -L/usr/lib -llibboost_regex main.cpp -o regex_test 

Другая информация, которая может иметь отношение:

Operating system: Arch linux 
g++ version: 4.6.2 20120120 (prerelease) 

Любая помощь будет оценена.

+0

Linking должны быть перечислены после файла .cpp, если я не ошибаюсь, но, вы должны опубликовать сообщение об ошибке. – Horus

ответ

5

Предположим, вы установили подталкивания с boost и boost-libs пакетов,

  1. Заголовок <boost/regex.hpp> должен существовать в /usr/include/boost/regex.hpp. Вам не нужно использовать какие-либо флаги -I, так как по умолчанию необходимо включить /usr/include.
  2. Вам не нужен флаг -L либо с /usr/lib также должен быть включен по умолчанию при связывании.
  3. При использовании флага -l для связи с библиотекой libfoo.so, следует удалить ведущую часть "lib".

Командная строка должна поэтому быть:

g++ main.cpp -o regex_test -lboost_regex 
+0

Спасибо, сейчас я чувствую себя глупо :) – martega

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