Want to use CodeBlocks under Windows

Questions and postings pertaining to the development of ImageMagick, feature enhancements, and ImageMagick internals. ImageMagick source code and algorithms are discussed here. Usage questions which are too arcane for the normal user list should also be posted here.
Post Reply
evilhomer

Want to use CodeBlocks under Windows

Post by evilhomer »

Hi everybody,

i want to develop a small thing under windows with the Magick++ stuff, but the linker seems to miss some objects.

Code: Select all

#include <Magick++.h>
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

using namespace Magick;

int main( int argc, char **argv )
{
    InitializeMagick(*argv);

    Image oImage;
    oImage.read( "test.jpg" );
    oImage.zoom( Geometry("200x200") );
    oImage.read( "test_out.jpg" );
    return 0;
}
but the compiler says:
C:\Dokumente und Einstellungen\userbane\Eigene Dateien\c.devel\scaleimage\main.cpp|15|undefined reference to `Magick::InitializeMagick(char const*)'|
....

i asked allready the guys in the codeblocks forum, but the say ask the guys from imagemagick... so i hope somebody can help me.
The most time i develop under linux, and there i have no problems but windows... only trouble with it.
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: Want to use CodeBlocks under Windows

Post by magick »

Go to c:/Program Files/ImageMagick-6.6.2-0/Magick++_demos and click on the button project. Now build and execute. Most likely it will run without complaint. Now use this project as a model for your own Magick++ custom code.
evilhomer

Re: Want to use CodeBlocks under Windows

Post by evilhomer »

Hi,

thanks for you replay.
But there is the same problem.

I think CodeBlocks miss a libary but i dont know how to say the linker in CodeBlocks where he can find the Libs.

Code: Select all

C:\Programme\ImageMagick-6.6.1-Q16\Magick++_Demo\button.o:button.cpp:(.text+0x17f)||undefined reference to `Magick::InitializeMagick(char const*)'|
CodeBlocks does not understand the projectfiles in the demo Folder, it looks like M$ C++ project files.
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: Want to use CodeBlocks under Windows

Post by magick »

The button project has a Visual C++ workspace. Its a sanity check to ensure ImageMagick is installed properly and can link and execute Magick++ code. We just tried it on our system and it worked as expected suggesting the ImageMagick Windows distribution is sound.

Code::Blocks permits you to import Visual C++ workspaces. Perhaps additional manual configuration is required.
evilhomer

Re: Want to use CodeBlocks under Windows

Post by evilhomer »

Hmmm dose not work,

it seems that the import of the MS C++ Project file does not bring the libraries with it.

Code: Select all

||=== zoom, default ===|
.objs\zoom.o:zoom.cpp:(.text+0x2af)||undefined reference to `Magick::InitializeMagick(char const*)'|
.objs\zoom.o:zoom.cpp:(.text+0x2d5)||undefined reference to `Magick::Geometry::Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x2ea)||undefined reference to `Magick::Geometry::Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x2ff)||undefined reference to `Magick::Geometry::Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x426)||undefined reference to `Magick::Geometry::Geometry(char const*)'|
.objs\zoom.o:zoom.cpp:(.text+0x445)||undefined reference to `Magick::Geometry::operator=(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0x477)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x4a9)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0xa03)||undefined reference to `Magick::Geometry::Geometry(char const*)'|
.objs\zoom.o:zoom.cpp:(.text+0xa22)||undefined reference to `Magick::Geometry::operator=(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0xa54)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0xa86)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0xb76)||undefined reference to `Magick::Geometry::Geometry(char const*)'|
.objs\zoom.o:zoom.cpp:(.text+0xb95)||undefined reference to `Magick::Geometry::operator=(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0xbc7)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0xbf9)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0xe7d)||undefined reference to `Magick::Image::Image(std::string const&)'|
.objs\zoom.o:zoom.cpp:(.text+0xeab)||undefined reference to `Magick::Image::density(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0xecd)||undefined reference to `Magick::Image::density() const'|
.objs\zoom.o:zoom.cpp:(.text+0xeef)||undefined reference to `Magick::Geometry::operator=(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0xf21)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0xf56)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x10f7)||undefined reference to `Magick::Geometry::Geometry(unsigned int, unsigned int, unsigned int, unsigned int, bool, bool)'|
.objs\zoom.o:zoom.cpp:(.text+0x1116)||undefined reference to `Magick::Geometry::operator=(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0x1148)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x117d)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x1192)||undefined reference to `Magick::Image::density(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0x11e5)||undefined reference to `Magick::Image::sample(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0x1206)||undefined reference to `Magick::Image::scale(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0x1227)||undefined reference to `Magick::Image::filterType(MagickCore::FilterTypes)'|
.objs\zoom.o:zoom.cpp:(.text+0x123c)||undefined reference to `Magick::Image::zoom(Magick::Geometry const&)'|
.objs\zoom.o:zoom.cpp:(.text+0x125e)||undefined reference to `Magick::Image::write(std::string const&)'|
.objs\zoom.o:zoom.cpp:(.text+0x1290)||undefined reference to `Magick::Image::~Image()'|
.objs\zoom.o:zoom.cpp:(.text+0x12c2)||undefined reference to `Magick::Image::~Image()'|
.objs\zoom.o:zoom.cpp:(.text+0x1391)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x13a6)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x13bb)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x15f2)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text+0x1615)||undefined reference to `Magick::Geometry::~Geometry()'|
.objs\zoom.o:zoom.cpp:(.text$_ZNK6Magick5Image7columnsEv[Magick::Image::columns() const]+0xd)||undefined reference to `Magick::Image::constImage() const'|
.objs\zoom.o:zoom.cpp:(.text$_ZNK6Magick5Image4rowsEv[Magick::Image::rows() const]+0xd)||undefined reference to `Magick::Image::constImage() const'|
||=== Build finished: 41 errors, 0 warnings ===|
Can you say me wich libs are required.
The header files seems to be found, the only things were missed are the libs it seems
n00b32

Re: Want to use CodeBlocks under Windows

Post by n00b32 »

i thought this was a nice e-z lib .... theres no need for another incomprehensive undocumented hard to use and huge image library. (we have sdl xD)

this topic is hmmm important because maybe it shows a bug in magick++ (tho i dont kno)

and the
Go to c:/Program Files/ImageMagick-6.6.2-0/Magick++_demos and click on the button project. Now build and execute. Most likely it will run without complaint. Now use this project as a model for your own Magick++ custom code.
makes me think that there is NO support whatsoever just bots replying predefined unhelpful stuff.

i dont like libraries and communities like that and its a pity i have a program that uses magick++, changing it to not use it would be harder then writing from scratch, and i cant use vc++ .

if u made a lib that doesnt work and u have no intention whatsoever to repair it why release it. i would recommend ctrl+a shift+delete enter and windowslogo+r shutdown -s -t 00 or just plainly go to /dev/null

if you are offendend then reread this topic trying to put urself in the position of the OriginalPoster and think again
n00b32

Re: Want to use CodeBlocks under Windows

Post by n00b32 »

and if u did all that then tell me why doesnt it work if i have all includes/libraries imported :) ?
if u say that its ok that means u desing code NOT to work. and what good is that ?
Eames34
Posts: 1
Joined: 2012-07-10T08:03:20-07:00
Authentication code: 13

Re: Want to use CodeBlocks under Windows

Post by Eames34 »

Hi,

I am trying to use ImageMagick on CodeBlocks under Windows, and I have the same problems when I try to compile a simple code:

Code: Select all

undefined reference to `Magick::InitializeMagick(char const*)'
undefined reference to `Magick::Image::~Image()'|
undefined reference to `Magick::Image::~Image()'|
...
Below the procedure I have followed for the installation :
[*]Download and execute binary file from http://www.imagemagick.org/script/binar ... hp#windows
[*]Compiler debbug settings : Add to Linker Settigns -> C:\Program Files (x86)\ImageMagick-6.7.8-Q16\lib\CORE_RL_magick_.lib
[*]Compiler debbug settings : Add to Linker Settigns -> C:\Program Files (x86)\ImageMagick-6.7.8-Q16\lib\CORE_RL_Magick++_.lib
[*]Compiler debbug settings : Add to Linker Settigns -> C:\Program Files (x86)\ImageMagick-6.7.8-Q16\lib\CORE_RL_wand_.lib
[*]Compiler debbug settings : Add to Searchdirectories>Compiler -> C:\Program Files (x86)\ImageMagick-6.7.8-Q16\include
[*]Compiler debbug settings : Add to Searchdirectories>Linker -> C:\Program Files (x86)\ImageMagick-6.7.8-Q16\lib

I have to do something else? Did I did something wrong?

Thank you for your help.
alexsmith
Posts: 2
Joined: 2012-07-31T15:39:50-07:00
Authentication code: 15

Re: Want to use CodeBlocks under Windows

Post by alexsmith »

I'm trying the same thing (using Magick++ with CodeBlocks) with no success.

Unfortunately, as far as I'm aware of, the libs in the package you install from the binaries are compiled for Visual Studio only.

Going a little further, I read you can use ImageMagick source code and compile your code against it. I will try that out.

Using Visual Studio 2008 Express, I was able to open and compile the Demo project, but when I try to run the code, all I get are fatal exceptions.

Will let you know if I get there.

And I do agree the community deserves more than what has been posted here as answers. :S

EDIT 1:

viewtopic.php?f=1&t=13814#p50357
Post Reply