Mailing List Archive
tlug.jp Mailing List tlug archive tlug Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]Re: [tlug] Compile/load problem with graphics library
- Date: Wed, 8 Aug 2018 10:10:34 +0100
- From: Darren Cook <darren@example.com>
- Subject: Re: [tlug] Compile/load problem with graphics library
- References: <fe5a3e36-1068-ab9b-e233-66f92f81b522@imaginatorium.org> <32f9378d-874e-b475-e35f-fe10719cede8@gmail.com> <a3dd8cfb-f6bd-f433-c5db-4b7bb8cab604@imaginatorium.org>
- User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1
Given your initial description of a small, specific, old C++ program, I would rewrite it in commandline calls, or PHP (which has a nice imagemagick wrapper, and from memory worked smoothly, and has lots of docs, e.g. http://php.net/manual/en/book.imagick.php and http://phpimagick.com/ ) (Having said that, I'm just skimming the manual, and the comments are all people struggling to get ImageMagick installed!) > One big problem is that I simply cannot understand the mass of subtly > different library names involved. The configure script generates the > following for the libraries to be searched: > > -L/usr/local/lib -lMagick++-6.Q16 -lMagickWand-6.Q16 -lMagickCore-6.Q16 This is the horrible bit about C++ on unix. For the files you list, each of the *.so ones will link to one of the others; for the three you need (*) it looks like you have only one version installed. So that is easy. (And, also, the files you need are there.) For the others you'd expect the *.so to be linking to the most recent version, and you obviously have a lot of different versions installed. (*): GraphicsMagick is a branch; the branch was quite a while ago, and I think the projects have diverged a bit. So the -L tells it where to look at the -lXXX will expand out to libXXX.so. The last time I had to mess around with this I think I gave up and used static linking: E.g. https://www.systutorials.com/5217/how-to-statically-link-c-and-c-programs-on-linux-with-gcc/ But there was also something about LD_LIBRARY_PATH, and then there are flags you can give to the gcc linker that makes it tell you more verbosely what it is doing. Like I said, unless your script is very complex, or is bringing in other libraries not available in your scripting language of choice, I would rather rewrite. In fact I would still rewrite, but in C++11 or later, and starting from the closest example C++ script that comes with imagemagick, to be sure I have the installation working. Darren > libGraphicsMagick++.a libGraphicsMagickWand.so.2.7.3 > libGraphicsMagick++.so libGraphicsMagickWand.so.2.7.4 > libGraphicsMagick++.so.12 libGraphicsMagickWand.so.2.8.0 > libGraphicsMagick++.so.12.1.0 libGraphicsMagickWand.so.2.8.1 > libGraphicsMagick++.so.12.1.1 libGraphicsMagickWand.so.2.8.2 > libGraphicsMagick++.so.12.2.0 libGraphicsMagickWand.so.2.9.0 > libGraphicsMagick++.so.12.3.0 libMagick++-6.Q16.a > libGraphicsMagick++.so.12.3.1 libMagick++-6.Q16.la > libGraphicsMagick++.so.12.3.2 libMagick++-6.Q16.so > libGraphicsMagick.a libMagick++-6.Q16.so.6 > libGraphicsMagick.so libMagick++-6.Q16.so.6.0.0 > libGraphicsMagick.so.3 libMagickCore-6.Q16.a > libGraphicsMagick.so.3.15.0 libMagickCore-6.Q16.la > libGraphicsMagick.so.3.15.1 libMagickCore-6.Q16.so > libGraphicsMagick.so.3.16.0 libMagickCore-6.Q16.so.2 > libGraphicsMagick.so.3.17.0 libMagickCore-6.Q16.so.2.0.0 > libGraphicsMagick.so.3.17.2 libMagickWand-6.Q16.a > libGraphicsMagick.so.3.18.0 libMagickWand-6.Q16.la > libGraphicsMagickWand.a libMagickWand-6.Q16.so > libGraphicsMagickWand.so libMagickWand-6.Q16.so.2 > libGraphicsMagickWand.so.2 libMagickWand-6.Q16.so.2.0.0 > > GraphicsMagick: > config > > ImageMagick-6.9.1: > config-Q16 > > ImageMagick-6.9.4: > config-Q16 > ------------------------------------------------------------------ > > ---- Latest error: with the library files after the .o files ---- > horigome@kulle% make imagetrim > g++ imagetrim.o boundingbox.o `Magick++-config --ldflags --libs` -o > imagetrim > imagetrim.o: In function `main': > imagetrim.cpp:(.text+0x3c1): undefined reference to > `Magick::Image::read(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&)' > imagetrim.cpp:(.text+0x783): undefined reference to > `Magick::Image::write(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&)' > imagetrim.cpp:(.text+0xd55): undefined reference to > `Magick::Image::write(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&)' > collect2: error: ld returned 1 exit status > *** Error code 1 >
- References:
- [tlug] Compile/load problem with graphics library
- From: Brian Chandler
- Re: [tlug] Compile/load problem with graphics library
- From: Joe Foran
- Re: [tlug] Compile/load problem with graphics library
- From: Brian Chandler
Home | Main Index | Thread Index
- Prev by Date: Re: [tlug] Compile/load problem with graphics library
- Next by Date: Re: [tlug] Compile/load problem with graphics library
- Previous by thread: Re: [tlug] Compile/load problem with graphics library
- Next by thread: Re: [tlug] Compile/load problem with graphics library
- Index(es):
Home Page Mailing List Linux and Japan TLUG Members Links