Page 1 of 1

Using Magick Wand

Posted: 2009-10-22T14:53:47-07:00
by legendus
Hello!

I'm trying to get working the library libdtmx. This one has one file called dtmxread.c. In this one I can read one image and use it to decode a DataMatrix code. I have tried to open a image by myself, but nothing. So I try to use the dtmxread.c file to do that. This file uses the Magick Wand. So, I downloaded the sources and add them to the project. While I was compiling, it says to me that it needs magick. I put all the folder magick and compile with that.

I could do it. But, when I finish with the error's compilation, comes to me the linkers one. And all the functions that are called from the dtmxread to the magick wand are considered "undefined reference to..."

What can I do?

Here the errors go:

||=== Prueba, Debug ===|
C:\proyecto\dmtxread.c||In function `main':|
C:\proyecto\dmtxread.c|118|warning: `MagickGetImagePixels' is deprecated (declared at C:\proyecto\wand/deprecate.h:64)|
C:\proyecto\dmtxfec.c|161|warning: 'encode_rs_char' defined but not used|
obj\Debug\dmtxread.o||In function `main':|
C:\proyecto\dmtxread.c|65|undefined reference to `_MagickWandGenesis'|
C:\proyecto\dmtxread.c|74|undefined reference to `_NewMagickWand'|
C:\proyecto\dmtxread.c|76|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|82|undefined reference to `_MagickSetResolution'|
C:\proyecto\dmtxread.c|85|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|89|undefined reference to `_MagickReadImage'|
C:\proyecto\dmtxread.c|92|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|95|undefined reference to `_MagickGetImageWidth'|
C:\proyecto\dmtxread.c|96|undefined reference to `_MagickGetImageHeight'|
C:\proyecto\dmtxread.c|99|undefined reference to `_MagickResetIterator'|
C:\proyecto\dmtxread.c|100|undefined reference to `_MagickNextImage'|
C:\proyecto\dmtxread.c|114|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|118|undefined reference to `_MagickGetImagePixels'|
C:\proyecto\dmtxread.c|121|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|128|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|137|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|143|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|192|undefined reference to `_MagickWandTerminus'|
obj\Debug\dmtxread.o||In function `HandleArgs':|
C:\proyecto\dmtxread.c|286|undefined reference to `_Basename'|
C:\proyecto\dmtxread.c|308|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|310|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|313|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|315|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|318|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|320|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|323|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|325|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|331|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|333|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|335|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|338|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|341|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|343|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|368|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|371|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|389|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|391|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|400|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|402|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|411|undefined reference to `_StringToInt'|
C:\proyecto\dmtxread.c|413|undefined reference to `_FatalError'|
obj\Debug\dmtxread.o||In function `CleanupMagick':|
C:\proyecto\dmtxread.c|693|undefined reference to `_MagickGetException'|
C:\proyecto\dmtxread.c|695|undefined reference to `_MagickRelinquishMemory'|
C:\proyecto\dmtxread.c|699|undefined reference to `_DestroyMagickWand'|
obj\Debug\dmtxread.o||In function `ListImageFormats':|
C:\proyecto\dmtxread.c|717|undefined reference to `_MagickQueryFormats'|
C:\proyecto\dmtxread.c|738|undefined reference to `_MagickRelinquishMemory'|
obj\Debug\dmtxread.o||In function `WriteDiagnosticImage':|
C:\proyecto\dmtxread.c|756|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|761|undefined reference to `_FatalError'|
C:\proyecto\dmtxread.c|765|undefined reference to `_FatalError'|
obj\Debug\dmtxread.o||In function `ScaleNumberString':|
C:\proyecto\dmtxread.c|785|undefined reference to `_StringToInt'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 2 warnings ===|


I see that all fuctions has a "_" before, but they are not wrotten so in the dtmxread.c. A part of this erros, there is any problem with that warnings?.

Thanks you so much!

Re: Using Magick Wand

Posted: 2009-10-22T17:08:19-07:00
by magick
We did not write libdtmx. You might consider contacting the authors of that library. In the mean-time, this is the standard way to link a source module with the MagickWand library:
  • cc `MagickWand-config --cflags --cppflags` -o wand wand.c `MagickWand-config --ldflags --libs`

Re: Using Magick Wand

Posted: 2009-10-23T00:02:26-07:00
by legendus
Hello again

Thank you for your answer. I'm using code blocks enviroment for windows, so I can't use that setence to link. I have been seeing the enviroment and there is one part in the build options about the linker. It let me add files with the extension:

.a, .so, .lib, .dylib, .bundle.

Must I add one of them to the linker?

I'll try to talk with one of the authors in the libdtmx project. Thank you!