Problems compiling sqlite-d
Adam D. Ruppe via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Jan 29 19:07:22 PST 2017
On Monday, 30 January 2017 at 02:46:34 UTC, Nestor wrote:
> Well, I had downloaded the github version a few days back but
> yesterday managed to get dub to fetch properly, so I just
> fetched package arsd, and took the units from there.
Oh, that is ancient and not even mine - I don't have access to
it, it was set up by a third party years ago!
> d:\prj\sqltest2\source>dmd app
That is always wrong unless your entire program consists *only*
of app.d. When compiling, you need to have imported modules
available or you'll see "module foo is found in file foo.d that
cannot be found", and when linking, you need to have the code
available or you'll see "Symbol Undefined". Since compiling and
linking are done in the same step unless you ask it not to,
missing modules may lead to one, the other, or both.
The easiest solution is to pass all the modules to the compiler
at once. Then it will be able to find them for import and will
compile and link them automatically. If you link separately (such
as to a .lib or .dll), you can specify them rather than all the
.d files, but it still needs the .d for the import!
Whether it is library modules or another module in your own file,
it is the same, they all need to be there.
> If I specify all source files, there are even more problems:
> Error 42: Symbol Undefined _sqlite3_open
It apparently couldn't find sqlite3.lib.
> Files sqlite3.{def|dll|lib} are on both source/ and
> source/arsd/ (just in case)
Try specifying it on the command line too:
dmd app.d database.d sqlite.d sqlite3.lib
Though this may still require sqlite3.dll there too, unless it
was built statically.
More information about the Digitalmars-d-learn
mailing list