libjpegのインストール


環境

macOS Big Sur ver.11.5.1
MacBook Air (M1, 2020)


libjpegのインストール

必要な要素になってくるlibjpegもインストールが必要になっているので同じサイトを参考にインストールしよう.

libjpeg は JPEG 画像ファイルを扱うためのライブラリです。

この libjpeg を利用することで、C言語などのプログラムから簡単に JPEG 画像を読み込んだり、JPEG 画像を作成したりできるようになります

https://daeudaeu.com/libjpeg/

ここで最新のtar.gzを取ってくるらしい.2022/9/8ではv9eってやつが最新らしい.



ダウンロードするとこんな感じにDownroadsフォルダにある.


ターミナルでDownloadsファイルに移動し

MacBook-Air Downloads % tar xvzf jpegsrc.v9e.tar
tar: Error opening archive: Failed to open 'jpegsrc.v9e.tar'


なんか怒られた.

Failed to openって,なんでだろう.


MacBook-Air Downloads % ls
326323770.pdf			googlechrome.dmg
DeepL.dmg			hg_guide.pdf
Discord.dmg			jpeg-9e
Essentials_Sonic_Pi-v1.pdf	jpegsrc.v9e.tar.gz


ちゃんと圧縮ファイル自体はある.


MacBook-Air Downloads % tar xvzf jpegsrc.v9e.tar.gz  
x jpeg-9e/
x jpeg-9e/aclocal.m4
x jpeg-9e/ar-lib


.gzまで入れたらできた.ちゃんとファイル名はそのまま入れなきゃね.
結果は展開後のファイルがばーっと出てくるので最初の3つで切ってしまった.実際にはめちゃくちゃある.


MacBook-Air Downloads % ls
326323770.pdf			googlechrome.dmg
DeepL.dmg			hg_guide.pdf
Discord.dmg			jpeg-9e
Essentials_Sonic_Pi-v1.pdf	jpegsrc.v9e.tar.gz


あれ,作られるのは今回おそらくjpeg-9eでいいんだろうけど,さっきのlsコマンドの時もあったなこれ.さっきのは失敗したから空になってたと思うんだけど.確認しておけばよかった.

とにかく,解凍には成功した.

作られたフォルダに移動する.

MacBook-Air Downloads % cd jpeg-9e


移動先のフォルダで以下のコマンド
を実行.libjpegをインストールするための設定をするらしい.実行結果が長かったので真ん中ら辺は省く.checkingがいっぱい出てきたけど処理自体は数秒で終わった.


MacBook-Air jpeg-9e % ./configure
checking build system type... aarch64-apple-darwin20.6.0
checking host system type... aarch64-apple-darwin20.6.0
checking target system type... aarch64-apple-darwin20.6.0
.
.
.
checking libjpeg version number... 9.5.0
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libjpeg.pc
config.status: creating jconfig.h
config.status: executing depfiles commands
config.status: executing libtool commands

configureというスクリプトファイルを実行しています(configureというコマンドがあるわけではありません)。
ソースコード中にこのスクリプトファイルが含まれているので、パスに注意して実行します。

実行することで、インストールに必要な環境変数やライブラリが正しく設定、設置されているか等がチェックされます。チェックした結果、MakeFileが作られます。
アプリケーションをインストールする環境は様々存在するため、単一のMakeFileを準備するだけだと、環境の差異に対応するのが難しくなります。
configureを使えば、アプリがインストールされる環境を自動的に調べ、その環境に合わせたMakeFileを自動的に作ることができます。

多くの場合は慣例に伴い「configure」という名前がつかれていますが、別の名前で定義されている場合もあります。
README等から手順を確認しましょう。

https://qiita.com/chihiro/items/f270744d7e09c58a50a5


次は,同フォルダでmakeを実行.これも結果が長いので真ん中ら辺は省いて結果を載せる.


MacBook-Air jpeg-9e % make
/Library/Developer/CommandLineTools/usr/bin/make  all-am
  CC       cjpeg.o
  CC       rdppm.o
 .
 .
 .
  CCLD     djpeg
  CC       jpegtran.o
  CC       transupp.o
  CCLD     jpegtran
  CC       rdjpgcom.o
  CCLD     rdjpgcom
  CC       wrjpgcom.o
  CCLD     wrjpgcom

configureで作成されたMakeFileに基づいて、アプリのコンパイルが行われます。
makeコマンドは(こちらはコマンドです)オプションなし、引数なしで実行することで、MakeFileを参照し、MakeFile内のデフォルトの処理を行います(大抵の場合はビルド処理です)。

https://qiita.com/chihiro/items/f270744d7e09c58a50a5


また同ディレクトリで以下のコマンドを実行する.
sudoを使って管理者権限で実行するのでパスワードが求められる.

これはそんなに長くないので結果をそのまま載せる.


MacBook-Air jpeg-9e % sudo make install
Password:
 ././install-sh -c -d '/usr/local/lib'
 /bin/sh ./libtool   --mode=install /usr/bin/install -c   libjpeg.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libjpeg.9.dylib /usr/local/lib/libjpeg.9.dylib
libtool: install: (cd /usr/local/lib && { ln -s -f libjpeg.9.dylib libjpeg.dylib || { rm -f libjpeg.dylib && ln -s libjpeg.9.dylib libjpeg.dylib; }; })
libtool: install: /usr/bin/install -c .libs/libjpeg.lai /usr/local/lib/libjpeg.la
libtool: install: /usr/bin/install -c .libs/libjpeg.a /usr/local/lib/libjpeg.a
libtool: install: chmod 644 /usr/local/lib/libjpeg.a
libtool: install: ranlib /usr/local/lib/libjpeg.a
 ././install-sh -c -d '/usr/local/bin'
  /bin/sh ./libtool   --mode=install /usr/bin/install -c cjpeg djpeg jpegtran rdjpgcom wrjpgcom '/usr/local/bin'
libtool: install: /usr/bin/install -c .libs/cjpeg /usr/local/bin/cjpeg
libtool: install: /usr/bin/install -c .libs/djpeg /usr/local/bin/djpeg
libtool: install: /usr/bin/install -c .libs/jpegtran /usr/local/bin/jpegtran
libtool: install: /usr/bin/install -c rdjpgcom /usr/local/bin/rdjpgcom
libtool: install: /usr/bin/install -c wrjpgcom /usr/local/bin/wrjpgcom
/bin/sh /Users/usrname/Downloads/jpeg-9e/install-sh -d /usr/local/include
/usr/bin/install -c -m 644 jconfig.h /usr/local/include/jconfig.h
 ././install-sh -c -d '/usr/local/include'
 /usr/bin/install -c -m 644 jerror.h jmorecfg.h jpeglib.h '/usr/local/include'
 ././install-sh -c -d '/usr/local/share/man/man1'
 /usr/bin/install -c -m 644 cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1 '/usr/local/share/man/man1'
 ././install-sh -c -d '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libjpeg.pc '/usr/local/lib/pkgconfig'

makeコマンドによってコンパイルされたアプリをインストールします。
(結局のところは、makeしたファイル群をディレクトリにコピーしています)

make installというコマンドは、「MakeFile」に記述された「install」というラベルから処理を実行する、という動作になります。
configure同様、多くの場合は慣例に伴い「install」と定義されていますが、別の名前で定義されている場合もあります。

https://qiita.com/chihiro/items/f270744d7e09c58a50a5



これでインストールは完了した.
ちゃんと出来ているかの確認をしよう.


適当に.cファイルを作る.ほんとになんでもいい.

#include<stdio.h>

int main (void){
    printf("Hello.");
    return 0;
}


その.cファイルがあるディレクトリに移動,以下のコマンドを実行する.


% gcc -o try  try.c -ljpeg


エラーが表示されずコンパイルが完了すれば、libjpeg のインストールが正しく出来ていることになる.

インストールがうまくできていないと,下記のようなメッセージが表示されるらしい.このときは今までの手順をよく確認して欲しい.


ld: library not found for -ljpeg
clang: error: linker command failed with exit code 1 (use -v to see invocation)


何はともあれ,自分は正しくインストールできたみたいなのでよかった.

この記事が気に入ったらサポートをしてみませんか?