powerdns + mongodb - PullRequest
       20

powerdns + mongodb

1 голос
/ 23 февраля 2012

Я пытался скомпилировать модуль mongodbbackend для powerdns, но я застрял с этой проблемой:

In file included from mongodbbackend.cc:18:
mongodbbackend.hh: At global scope:
mongodbbackend.hh:109: error: ISO C++ forbids declaration of ‘auto_ptr’ with no type
mongodbbackend.hh:109: error: expected unqualified-id before ‘<’ token
make[3]: *** [mongodbbackend.lo] Error 1
make[3]: Leaving directory `/root/pdns-3.0.1/modules/mongodbbackend'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/pdns-3.0.1/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/pdns-3.0.1'
make: *** [all] Error 2

Я пытался включить файлы из mongodb 2.0.2 и 2.0.3.Вот источники из модуля: http://wiki.powerdns.com/trac/browser/trunk/pdns/modules/mongodbbackend

Есть предложения?

Ответы [ 3 ]

2 голосов
/ 23 февраля 2012

Пост от Рубена - это мой анонимный / пост-аккаунт.Я не смотрел на форматирование, поэтому пост немного испорчен.

Ошибка компилятора, которую вы можете преодолеть, добавив:

#include<memory>

Иизменение строки 109 с:

auto_ptr<mongo::DBClientCursor> cursor;

на

std::auto_ptr<mongo::DBClientCursor> cursor;

Это, однако, вызывает другие ошибки на моем конце (см. http://pastebin.com/Wm60JCDu). Это может работать для вас, хотя: -)

Было бы полезно, если бы вы предоставили больше информации о вашей среде (дистрибутив, какая версия mangodb и используемый драйвер манго).

1 голос
/ 03 марта 2012

Можете ли вы попробовать этот патч?

diff --git a / modules / mongodbbackend / mongodbbackend.hh b / modules / mongodbbackend / mongodbbackend.hh index 816128f..4f7cf78 100644 --- / modules / mongodbbackend / mongodbbackend.hh +++ b / modules / mongodbbackend / mongodbbackend.hh @@ -1,13 +1,13 @@ #ifndef MONGODB_HH #define MONGODB_HH

+#include "client/dbclient.h"
 #include "pdns/dnsbackend.hh"

 #undef VERSION
 #include <string>
 using std::string;
-
-#include "client/dbclient.h"
+using std::auto_ptr;

 class MONGODBException {
 public:

Это в https://github.com/azlev/powerdns/commit/a402d8493e5610e139ea19a9ef700e26b2e6e35c

1 голос
/ 23 февраля 2012

Ошибка компиляции, которую вы можете преодолеть, добавив:

#include<memory>

и изменив

auto_ptr<mongo::DBClientCursor> cursor;

на

std::auto_ptr<mongo::DBClientCursor> cursor;

вокруг строки 108/ 109/110 in mangobackend.hh

Это может сработать для вас, но я думаю, что это сильно зависит от используемого вами mangodb-api.

Это было бы полезноесли вы предоставите больше информации о вашей среде (дистрибутив, версия манго и т. д.)

...