![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以下の# compilationのところなんですが、-lip -limage -ltiff -lm
というオプションの意味と、$@という表記の意味、/bin/cpがどんなコマンドなのか、$(CC)の行と/bin/cpの行はどのようなつながりなのか、こんがらかってしまいました。どなたか教えていただけないでしょうか。
#
# xconv Makefile
#
# Practical Algorithms for Image Analysis
#
# Copyright (c) 1997, 1998, 1999 MLMSoftwareGroup, LLC
#
SHELL = /bin/sh
NULL =
CC = /usr/bin/gcc
HOME = ../..
BIN = $(HOME)/binlin
IPATH = -I. -I$(HOME)/libtiff/libtiff -I$(HOME)/libimage -I$(HOME)/libip
LPATH = -L$(HOME)/libtiff/libtiff -L$(HOME)/libimage -L$(HOME)/libip
COPTS = -g -O
# OPTIONAL DEFINES #################################
DEFOPTS = -DLINUX
# SET CC COMPILE FLAGS #############################
CFLAGS = $(COPTS) $(IPATH) $(DEFOPTS)
CC = /usr/bin/gcc
LIB_TIFF=$(HOME)/libtiff/libtiff
LIB_IMAGE=$(HOME)/libimage
LDFLAGS=$(OPTIONS)
XCONV = xconv
# EXECUTABLES #######################################
EXECS = $(XCONV)
# OBJECT FILES #####################################
XCONVO = xconv.o
# COMPILATION ######################################
all: $(EXECS)
$(XCONV): $(XCONVO)
$(CC) $(COPTS) $(XCONVO) $(LPATH) -lip -limage -ltiff -lm -o $@
/bin/cp $@ $(BIN)
# HEADER DEPENDENCIES ###############################
HDRS =$(HOME)/libimage/tiffimage.h \
$(HOME)/libimage/draw.h \
$(NULL)
$(XCONVO):$(HDRS)
clean:
rm -f $(EXECS) *.o *.a core
# START OVER ########################################
new:
rm -f $(EXECS) *.o *.a core
make
No.1ベストアンサー
- 回答日時:
>-lip -limage -ltiff -lm というオプションの意味
これらはCコンパイラに渡すリンカオプションです。
つまりそれぞれ、ip, image, tiff, mというライブラリをリンク対象とするわけです。
>$@という表記の意味
ターゲット名に置換されるmakeのマクロです。
この場合$(XCONV)に置換され、更にxconvになります。
>/bin/cpがどんなコマンドなのか
Unixの基礎中の基礎である、コピーコマンドです。
>$(CC)の行と/bin/cpの行はどのようなつながりなのか
ターゲット名をmakeするに当たって、この場合は先ず$(CC)の行を実行した後、/bin/cpの行を実行するということです。
>こんがらかってしまいました
些か基礎知識が足りないだけの気もしますが。
makefileを読むには、Unixの基礎知識と最低限のコンパイラの使い方の知識は必要です。
ここに挙げた情報は、恐らくUnixプログラミング初心者向けの本に書いてあるような内容ですから、
一冊くらい眺めてからこのmakefileを読めば他の行も何をやっているのか判ると思います。
助かりました。本当にありがとうございます。
UNIX SUPER TEXTを読み返しておりました。makefileの節じゃなく、ccの説明を読んでいたら該当箇所が出てきました。
cpというコマンドはしょっちゅう使っていますが、改めて/bin/cpと書かれていたのでとまどってしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- 英語 If I was at home, my mom was the one who always・・・ 6 2022/09/01 20:24
- UNIX・Linux cronでシェルスクリプト実行時のkubactlコマンドが機能しない対処法。 2 2022/08/03 18:58
- 英語 pick up の語法 2 2022/06/16 15:58
- その他(Microsoft Office) Offece Home&Business2016をアンインストールする方 1 2022/04/08 23:23
- その他(Microsoft Office) Office Home & Business 2021で外付けHDにあるファイルを開く方法 3 2022/06/08 22:26
- 英語 home where you've rented one out for a week? 4 2022/08/06 09:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルでキー操作を行う。
-
コマンドプロンプトが実行中か...
-
(コマンドプロンプト)コマンド...
-
コマンドプロンプトですべてのU...
-
ExcelVBAでDOSコマンドの標準出...
-
makefile
-
ttlで戻り値を取得する方法
-
VISTA での net send について
-
エラーについて
-
makeコマンドのエラー
-
パワーシェル 画面解像度 変更
-
別のユーザーフォームのコマン...
-
Tera Term Proに関する質問です。
-
python でos.systemでの実行時...
-
Pythonのターミナルをクリアし...
-
No.1687のつづき
-
コマンドプロンプトで表示が多...
-
ローマ字入力で「トゥ」を入力...
-
「未使用」と「不使用」ってど...
-
自動改札のエラーって…
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルでキー操作を行う。
-
コマンドプロンプトで表示が多...
-
コマンドプロンプトが実行中か...
-
ttlで戻り値を取得する方法
-
VBユーザーフォームで時間入力
-
Tera Term Proに関する質問です。
-
TEXの表の位置が・・・
-
EEPROMのデータの初期化について
-
別のユーザーフォームのコマン...
-
PowerShell実行結果をデスクト...
-
コンボボックス(最終行取得)
-
コマンドキーがないんですけど...
-
コマンドプロンプトですべてのU...
-
RTX1100の削除コマンド
-
dosバッチ起動後、画面を閉じな...
-
ディスクの空き容量を取得する...
-
文字の点滅はどうやるのですか?
-
ルーターにつながっている全て...
-
makeコマンドのエラー
-
UDP通信での受信方法について
おすすめ情報