Компиляция с помощью CLion и libpqxx

Я пытаюсь проверить соединение с моей базой данных postgreSQL. Я установил libpqxx отсюда официальный клиентский API C++ для PostgreSQL.

Я использую последнюю версию CLion для своего проекта, GCC 8.1 в ОС Fedora 28. и я собираюсь использовать стандарт C++11. Когда я пытаюсь скомпилировать свой код, я получаю:

/usr/local/include/pqxx/internal/statement_parameters.hxx:213:13: error: ‘experimental’ in namespace ‘std’ does not name a type
      const std::experimental::optional<Arg> &arg)
             ^~~~~~~~~~~~
/usr/local/include/pqxx/internal/statement_parameters.hxx:213:35: error: expected unqualified-id before ‘<’ token
      const std::experimental::optional<Arg> &arg)
                                   ^
/usr/local/include/pqxx/internal/statement_parameters.hxx:213:35: error: expected ‘)’ before ‘<’ token
  const std::experimental::optional<Arg> &arg)
                                   ^
                                   )
/usr/local/include/pqxx/internal/statement_parameters.hxx:212:40: note: to match this ‘(’
   template<typename Arg> void add_field(
                                        ^
/usr/local/include/pqxx/internal/statement_parameters.hxx:213:35: error: expected initializer before ‘<’ token
  const std::experimental::optional<Arg> &arg)

Поэтому я думаю, что что-то не так с моей конфигурацией libpqxx или моим использованием.

  1. Должен ли я включать некоторую информацию о pqxx в CMakeLists.txt или достаточно использовать #include <pqxx/pqxx>? Использование #include <pqxx/pqxx> не выводит никаких нераспознанных ошибок.
  2. Нужно ли настраивать libpqxx для использования C++11 и переустанавливать его. Если да, то какой правильный флаг использовать для установки определенного стандарта С++ при выполнении ./configure? Я не нашел никакой информации об этом на официальном сайте и в Интернете.
  3. Должен ли я добавить некоторые настройки в CLion для сборки моего проекта на C++11?

person TalG    schedule 11.06.2018    source источник
comment
Ошибки жалуются на experimental::optional, а не на libpqxx, и я думаю, что это было частью C++11. Поэтому это может помочь Как включить C++11 в CLion?   -  person acraig5075    schedule 11.06.2018
comment
@acraig5075 acraig5075 Я уже использую параметр set(CXX_STANDARD 11) в своем CMakeFile.   -  person TalG    schedule 11.06.2018
comment
@ acraig5075 В конце концов, это было решение, которое я искал.   -  person TalG    schedule 11.06.2018
comment
Мне также пришлось использовать инструкции здесь Разрешить сборке скрывать std::experimental::Optional   -  person TalG    schedule 11.06.2018