Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Mac OS X にて、#include <Magick++.h>を含むファイルをg++ XXX.cc -o XXX 的なコンパイルに通す

More than 5 years have passed since last update.

==============

main.cc
#include <Magick++.h>
#include <iostream>
int main () { return 0; }

なんですか

これは、とある実験室のUbuntuで動いていたc++プログラムのひとつである。
ImageMagick という、画像を扱うライブラリを使用していた。
これを、Mac OS X のターミナル上で走らせたかった。gcc自体はよく動いていた。

2010年の解決と、2011年の解決と、2013年の解決と、2014年の解決がまるで違うので注意。はまりまっくって腰痛い。

決して、includeに強制的に追加するようなことはしてはならない。。。(自戒)

あと海外サイトで、微妙に現時点では解決できない方法であふれているのに注意。

2014年10月初頭時点でのMac OS での解決方法

1. http://cactuslab.com/imagemagick/ からインストールをする。

To simplify the process of installing ImageMagick on Mac OS X, Cactuslab has put together an installer package. The installer puts ImageMagick into /opt/ImageMagick and adds it to your PATH by creating an entry in /etc/paths.d/.

をよく読むこと。

2.公式サイトを見る。

見るべき場所は、http://imagemagick.org/script/magick++.php

$ g++ `Magick++-config --cxxflags --cppflags` -O2 -o demo demo.cpp \
  `Magick++-config --ldflags --libs`

なら通りますよ、と。まだ通らない模様。

すると PKG_CONFIG_PATH が無いよ的なエラーが出る。ImageMagick.pc があるフォルダを探す。今回は、/opt/lib/pkgconfig にあった。決して/usr/local/以下で無い。よって、、、

3.パスを追加する。

# ★追加
export PKG_CONFIG_PATH="/opt/lib/pkgconfig"

4.コンパイルにはオプションを追加する。

さっきいった通り。

$ g++ `Magick++-config --cxxflags --cppflags` -O2 -o main main.cc `Magick++-config --ldflags --libs`

runtBlue
働きたい
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away