
Ubuntu日本語フォーラム

ログインしていません。
よろしくお願いします。
OSは12.10(64bit)、gccバージョンはUbuntu/Linaro 4.7.2-2ubuntu1です。
GTK+のCファイルをコンパイルするのに、
gcc ファイル名.c -o ファイル名 $(pkg-config --cflags --libs gtk+-3.0)
と入力する文字数を減らすため、
alias gtk3='$(pkg-config --cflags --libs gtk+-3.0)'
と入力した後、
gcc ファイル名.c -o ファイル名 gtk3
でコンパイルすると、
gcc: エラー: gtk3: そのようなファイルやディレクトリはありません
と返されます。
aliasコマンドで確認すると、
alias gtk3='$(pkg-config --cflags --libs gtk+-3.0)'
が登録されている事が確認できます。
gcc ファイル名.c -o ファイル名 $(pkg-config --cflags --libs gtk+-3.0)
であれば、正常にコンパイルできるのですが。
また、
alias cdgtk='cd /home/ユーザー名/gtk'
入力後、、cdgtkでカレントディレクトリの移動はできます。
gccコマンドでは、aliasは使えないのでしょうか?
楽さを求める質問で恐縮なのですが、ご回答いただけると助かります。
よろしくお願い致します。
オフライン
alias コマンドは「実行する *コマンド* のエイリアスを作成する」ものなので、引数に使うことはできません。
(詳しくは alias コマンドの解説をしている web サイトや bash の man ページなどをお読みください)
このような目的では、普通は以下のようにシェル変数を利用します。
$ GTK3_PKG_CONFIG=`pkg-config --cflags --libs gtk+-3.0`
$ gcc ファイル名.c -o ファイル名 $GTK3_PKG_CONFIG
なお、Makefile などのビルドツールを利用すると毎回コマンドを打ち込む必要がなくなるので、
そちらを利用されることをおすすめします。
オフライン
epii様、アドバイスありがとうございます。
aliasを知った例では、gcc自体を含んでいたので、成功していたのだと理解できました。
GTK3_PKG_CONFIG=`pkg-config --cflags --libs gtk+-3.0`
を試してみました。これは成功したのですが、
gcc ファイル名.c -o ファイル名 $GTK3_PKG_CONFIG
では
gcc: エラー: pkg-config: そのようなファイルやディレクトリはありません
gcc: エラー: 認識できないコマンドラインオプション ‘--cflags’ です
gcc: エラー: 認識できないコマンドラインオプション ‘--libs’ です
gcc: エラー: gtk+-3.0: そのようなファイルやディレクトリはありません
と返されてしまいました。
Makefileを勧めていただいたので、そちらの方を調べてみたいと思います。
aliasについて、引数には使えない事を知ることができました。
誠にありがとうございました。
オフライン
futatsuya710様
解決されたようで何よりです。
ところで以下のエラーについてなのですが、
GTK3_PKG_CONFIG=`pkg-config --cflags --libs gtk+-3.0`
を試してみました。これは成功したのですが、
gcc ファイル名.c -o ファイル名 $GTK3_PKG_CONFIG
では
gcc: エラー: pkg-config: そのようなファイルやディレクトリはありません
gcc: エラー: 認識できないコマンドラインオプション ‘--cflags’ です
gcc: エラー: 認識できないコマンドラインオプション ‘--libs’ です
gcc: エラー: gtk+-3.0: そのようなファイルやディレクトリはありません
と返されてしまいました。
かなり紛らわしいですが、一行目の「`」はバッククォート (日本語配列なら Shift+@) です。
シングルクォート (「'」日本語配列なら Shift+7) と間違えていませんでしょうか?
オフライン
epii様、重ね重ねご助言いただき、ありがとうございます。
おっしゃる通り、'(Shift+7)を使っていました。
`(Shift+@)に直した所、コンパイルに成功しました。
また一つ、勉強になりました。
オフライン