Компиляция примеров BerkeleyDB. - PullRequest
1 голос
/ 15 ноября 2011

Я пытаюсь выполнить примеры berkeleyDB. Я установил BDB с помощью make и make install. В каталоге examples / c я делаю gcc ex _ *. C для любого примера, и вот что я получаю. Я иду об этом правильным путем?

ex_access.c: In function ‘main’:
ex_access.c:34: error: ‘DBC’ undeclared (first use in this function)
ex_access.c:34: error: (Each undeclared identifier is reported only once
ex_access.c:34: error: for each function it appears in.)
ex_access.c:34: error: ‘dbcp’ undeclared (first use in this function)
ex_access.c:64: warning: format ‘%s’ expects type ‘char *’, but argument 4 has type ‘int’
ex_access.c:67: error: ‘DB’ has no member named ‘set_errfile’
ex_access.c:68: error: ‘DB’ has no member named ‘set_errpfx’
ex_access.c:69: error: ‘DB’ has no member named ‘set_pagesize’
ex_access.c:70: error: ‘DB’ has no member named ‘err’
ex_access.c:73: error: ‘DB’ has no member named ‘set_cachesize’
ex_access.c:74: error: ‘DB’ has no member named ‘err’
ex_access.c:77: error: ‘DB’ has no member named ‘open’
ex_access.c:78: error: ‘DB_CREATE’ undeclared (first use in this function)
ex_access.c:79: error: ‘DB’ has no member named ‘err’
ex_access.c:107: error: ‘DB_NOOVERWRITE’ undeclared (first use in this function)
ex_access.c:107: warning: passing argument 4 of ‘dbp->put’ makes integer from pointer without a cast
ex_access.c:107: error: too many arguments to function ‘dbp->put’
ex_access.c:111: error: ‘DB’ has no member named ‘err’
ex_access.c:112: error: ‘DB_KEYEXIST’ undeclared (first use in this function)
ex_access.c:120: error: ‘DB’ has no member named ‘cursor’
ex_access.c:121: error: ‘DB’ has no member named ‘err’
ex_access.c:130: error: ‘DB_NEXT’ undeclared (first use in this function)
ex_access.c:134: error: ‘DB_NOTFOUND’ undeclared (first use in this function)
ex_access.c:135: error: ‘DB’ has no member named ‘err’
ex_access.c:141: error: ‘DB’ has no member named ‘err’
ex_access.c:144: error: too many arguments to function ‘dbp->close’
ex_access.c:146: warning: format ‘%s’ expects type ‘char *’, but argument 4 has type ‘int’
ex_access.c:152: error: too many arguments to function ‘dbp->close’

1 Ответ

0 голосов
/ 24 января 2012

это, вероятно, ошибка компоновки. Вам необходимо указать общую библиотеку libdb, например, "-ldb". Если библиотеки Berkeley DB установлены в масштабе всей системы, то можно предположить, что совместно используемые библиотеки и заголовочные файлы устанавливаются по умолчанию (/ usr / lib, / usr / lib64, / usr / include). Если нет, то вам нужно явно указать правильные пути. Предполагая установку по умолчанию Berkeley DB, вы можете попробовать что-то вроде

gcc -ldb your_sample.c -o your_sample

Кроме того, ваш вопрос связан с этим постом: Беркли БД: не может скомпилировать коды С ++

Либо перейдите в папку сборки (например, «build_unix») и запустите «make examples» для сборки примеров.

...