lug-bg: Berkeley DB C++ compile
- Subject: lug-bg: Berkeley DB C++ compile
- From: Aleksandar Valchev <hippo@xxxxxxxxxxxxxxxxxx>
- Date: Thu, 3 Feb 2005 16:47:33 +0200
- Organization: Efficient Software Systems
Не мога да се оправя с прост и тъп проблем.
Използвам libdb-4.2. Написал съм си на С една проста програма, която създава
празна база данни. Като съм включил #include <db4/db.h>. Компилирам я с
gcc -Wall -o test test.c -ldb-4
и всичко е наред програмата прави каквото трябва.
Обаче, на мен не ми трябва С, а С++. На С++ съм написал:
#include <db4/db_cxx.h>
int main()
{
Db db(NULL, 0);
return 0;
}
Отчайващо прост пример.
Компилирам го с
g++ -Wall -Wno-deprecated -o test test.cpp -ldb-4
Съответно изхода ми е познат:
/tmp/cczSirYq.o(.text+0x2b): In function `main':
: undefinied reference to `Db::Db[in-charge](DbEnv*, unsigned)'
/tmp/cczSirYq.o(.text+0x2b): In function `main':
: undefinied reference to `Db::~Db [in-charge]'
collect2: ld returned 1 exit status
Тъпотия. По принцип след -ldb-4 би трябвало да стане, както става с С примера.
Дистрибуцията ми е Slackware-current. След като разархивирах статичната
libdb-4.2.a, там имаше само обетни файлове за С, но не и за С++. Възможно ли
е просто пакета, който върви с Slackware, да не е компилиран и за С++?
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================
|