bdb2d and openSUSE

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Tue Jan 24 18:37:01 PST 2017


On Wednesday, January 25, 2017 00:39:40 unDEFER via Digitalmars-d wrote:
> Hello! Trying to build my project for Open SuSE and my project
> bdb2d unexpectedly brings error:
>
> Linking...
> ../../.dub/packages/bdb2d-5.3.28/bdb2d/.dub/build/library-debug-linux.posi
> x-x86_64-dmd_2071-9E956773380BE684D56F8F1619A72458/libdb.a(db_126_1b8.o):
> In function
> `_D10berkeleydb2db2Db6__ctorMFC10berkeleydb5dbenv5DbEnvkZC10berkeleydb2db
> 2Db':
> /home/undefer/unDE/unde-code/../../.dub/packages/bdb2d-5.3.28/bdb2d/sourc
> e/berkeleydb/db.d:68: undefined reference to `db_create'
> ../../.dub/packages/bdb2d-5.3.28/bdb2d/.dub/build/library-debug-linux.pos
> ix-x86_64-dmd_2071-9E956773380BE684D56F8F1619A72458/libdb.a(dbenv_1a4_1b8.
> o): In function
> `_D10berkeleydb5dbenv5DbEnv6__ctorMFkZC10berkeleydb5dbenv5DbEnv':
> /home/undefer/unDE/unde-code/../../.dub/packages/bdb2d-5.3.28/bdb2d/sourc
> e/berkeleydb/dbenv.d:89: undefined reference to `db_env_create'
> ../../.dub/packages/bdb2d-5.3.28/bdb2d/.dub/build/library-debug-linux.pos
> ix-x86_64-dmd_2071-9E956773380BE684D56F8F1619A72458/libdb.a(dbexception_28
> 4_455.o): In function
> `_D10berkeleydb11dbexception11DbException6__ctorMFAyaiC10berkeleydb5dbenv
> 5DbEnvAyamZC10berkeleydb11dbexception11DbException':
> /home/undefer/unDE/unde-code/../../.dub/packages/bdb2d-5.3.28/bdb2d/sourc
> e/berkeleydb/dbexception.d:161: undefined reference to `db_strerror'
> ../../.dub/packages/bdb2d-5.3.28/bdb2d/.dub/build/library-debug-linux.pos
> ix-x86_64-dmd_2071-9E956773380BE684D56F8F1619A72458/libdb.a(dbsequence_2a6
> _3df.o): In function
> `_D10berkeleydb10dbsequence10DbSequence6__ctorMFC10berkeleydb2db2DbkZC10b
> erkeleydb10dbsequence10DbSequence':
> /home/undefer/unDE/unde-code/../../.dub/packages/bdb2d-5.3.28/bdb2d/sourc
> e/berkeleydb/dbsequence.d:51: undefined reference to `db_sequence_create'
> collect2: error: ld returned 1 exit status
> --- errorlevel 1
> dmd failed with exit code 1.
>
>
> db_create, db_env_create, db_strerror, db_sequence_create all
> defined in the project as extern(C) functions; and all it defined
> as C-functions in external libdb.a library.
>
> The code works under Ubuntu, Linux Mint, Debian, Fedora, but not
> OpenSuse.
>
> What particulars of building under OpenSuSE?

My first thought would be that maybe the C library in question isn't
actually installed or that you need the dev version of the package
installed, and it isn't. If it can't find the symbols, maybe they just
aren't currently there. Alternatively, maybe it's not on your library load
path - though I would have expected something like that to be installed in
/usr/lib, which would definitely be in your library load path.

BTW, questions like this are better suited to the D.Learn newsgroup/forum.

- Jonathan M Davis



More information about the Digitalmars-d mailing list