Page 1 of 1
[Solved] Struggling to run my first Magick++ program
Posted: 2017-08-17T08:40:55-07:00
by h1b1
Hi Everyone,
I want to run a simple c++ program that includes the line
but the compiler throws the error
Code: Select all
fatal error: Magick++.h: No such file or directory
compilation terminated.
For installation, I cloned ImageMagick from GitHub to my home directory, and then ran ./configure, make and make install.
OS: macOS Sierra
Compiler: g++
ImageMagick version: 7
Also used Homebrew to install libxml2 and other missing libraries.
Any help would be much appreciated! Thanks!
Re: Struggling to run my first Magick++ program
Posted: 2017-08-17T08:46:00-07:00
by snibgo
It might help if you showed the compiler command you used. This should contain something that says where to find include files.
Re: Struggling to run my first Magick++ program
Posted: 2017-08-17T08:50:30-07:00
by h1b1
Thanks for the reply.
The compiler command was simply g++ test.cpp
When I tried
Code: Select all
g++ -I /usr/local/include/ImageMagick-7/ test.cpp
I got the following:
Code: Select all
In file included from /usr/local/include/ImageMagick-7/Magick++/Include.h:14:0,
from /usr/local/include/ImageMagick-7/Magick++.h:10,
from test.cpp:1:
/usr/local/include/ImageMagick-7/MagickCore/magick-config.h:29:3: warning: #warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default" [-Wcpp]
# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
^
/usr/local/include/ImageMagick-7/MagickCore/magick-config.h:30:3: warning: #warning "this is an obsolete behavior please fix your makefile" [-Wcpp]
# warning "this is an obsolete behavior please fix your makefile"
^
/usr/local/include/ImageMagick-7/MagickCore/magick-config.h:52:3: warning: #warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default" [-Wcpp]
# warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default"
^
/usr/local/include/ImageMagick-7/MagickCore/magick-config.h:53:3: warning: #warning "this is an obsolete behavior please fix yours makefile" [-Wcpp]
# warning "this is an obsolete behavior please fix yours makefile"
^
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
Re: Struggling to run my first Magick++ program
Posted: 2017-08-17T09:30:34-07:00
by snibgo
Can you successfully build the supplied demo programs? Or have you skipped that stage?
The official docs
http://www.imagemagick.org/script/magick++.php contain a build line that contain a couple of calls to Magick++-config. Have you deliberately chosen not to do this?
Re: Struggling to run my first Magick++ program
Posted: 2017-08-17T10:06:15-07:00
by h1b1
Can you successfully build the supplied demo programs?
Yes, but I think that was my mistake.
I thought I had to run the line
Code: Select all
c++ `Magick++-config --cxxflags --cppflags` -O2 -o demo demo.cpp \
`Magick++-config --ldflags --libs`
and
Code: Select all
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
with some demo file as a configuration step only once, and didn't realize that's how to compile c++ programs that use <Magick++.h>.
So now my problem is solved! Thanks a lot for your help!
Re: [Solved] Struggling to run my first Magick++ program
Posted: 2017-08-19T15:33:42-07:00
by tbone
I am having similar problem. When I try to run the sample code in VS environment, I provided the "include" and "lib" path properly but I still get linker errors like this, any ideas? I added the install folder "C:\Program Files\ImageMagick-7.0.6-Q16" to "PATH" of the project, assuming it is dll related issue and it isnt solving either.
Error LNK2019 unresolved external symbol "void __cdecl Magick::InitializeMagick(char const *)" (?InitializeMagick@Magick@@YAXPEBD@Z) referenced in function main ImageMagic_101