
Ubuntu日本語フォーラム
ログインしていません。
こんにちは
18.04を使用しています
C言語でグラフを描こうと思っています。
状況
1)
最初にコンパイルした時に、glibは無いと言われたので
sudo apt-get install libdbus-glib-1-dev
でインストールしました。
2)
gcc graph.c -o graph.outと入力すると
fatal error: glib.h: そのようなファイルやディレクトリはありません
#include<glib.h>
compilation terminated.
とエラーメッセージが出ます。
3)
また検索して以下のコマンドで
gcc `pkg-config --cflags --libs glib-2.0 dbus-glib-1` graph.c -o graph.out
と入力しても
warning: implicit declaration of function ‘ginit’ [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘window’; did you mean ‘ipow’? [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘line’; did you mean ‘time’? [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘fabs’ [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘setpoint’; did you mean ‘g_print’? [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘moveto’ [-Wimplicit-function-declaration]
/tmp/ccsHbhhd.o: 関数 `main' 内:
`ginit' に対する定義されていない参照です
`window' に対する定義されていない参照です
`line' に対する定義されていない参照です
`setpoint' に対する定義されていない参照です
`moveto' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
とエラーメッセージが出ます。
質問
1)
グラフ表示に必要なライブラリーはすべて入ったのでしょうか?
インストールできていないならインストール方法をお教えください。
2)
パスが通っていないのでしょうか?
パスの通し方をお教えください。
3)
window lineなどの単語は予約語でしょうか?
4)
他に必要な作業があればお教えください
よろしくお願いいいたします。
オフライン
shermansweet による投稿:
warning: implicit declaration of function ‘ginit’ [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘window’; did you mean ‘ipow’? [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘line’; did you mean ‘time’? [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘fabs’ [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘setpoint’; did you mean ‘g_print’? [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘moveto’ [-Wimplicit-function-declaration]
これらはプロトタイプ宣言が無いという警告メッセージのはずなので、
まずは関数プロトタイプを追加してみてはいかがでしょうか。
オフライン
すみません、「関数プロトタイプを追加してみては」と書きましたが、そうじゃないようですね。
shermansweet による投稿:
/tmp/ccsHbhhd.o: 関数 `main' 内:
`ginit' に対する定義されていない参照です
`window' に対する定義されていない参照です
`line' に対する定義されていない参照です
`setpoint' に対する定義されていない参照です
`moveto' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
このエラーが出ているということは、
main関数内からginit()などを呼び出しているものの、
main関数がある.cファイル内にそれらの関数の実体が無いってことですよね。
.cファイルを分割している場合はコンパイルのコマンドを、
gcc `pkg-config --cflags --libs glib-2.0 dbus-glib-1` *.c -o graph.out
に変更するか、ヘッダファイルを作成してインクルードしてみてください。
オフライン
ご回答ありがとうございます。
.cファイルを分割している場合はコンパイルのコマンドを、
gcc `pkg-config --cflags --libs glib-2.0 dbus-glib-1` *.c -o graph.out
に変更するか、ヘッダファイルを作成してインクルードしてみてください。
.cファイルは分割していません。
方針としては良さそうなので、このまま少し頑張ってみます。
オフライン