お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2018-07-28 12:15:56

shermansweet
メンバ
From: Tokyo Japan
登録日: 2009-09-15

C言語 グラフを描く場合のライブラリーインストール方法

こんにちは
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)
 他に必要な作業があればお教えください

よろしくお願いいいたします。

オフライン

 

#2 2018-07-29 15:28:04

aaabbbcccdddeeefffggghhh
メンバ
登録日: 2008-02-25

Re: C言語 グラフを描く場合のライブラリーインストール方法

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]

これらはプロトタイプ宣言が無いという警告メッセージのはずなので、
まずは関数プロトタイプを追加してみてはいかがでしょうか。

オフライン

 

#3 2018-07-29 16:13:25

aaabbbcccdddeeefffggghhh
メンバ
登録日: 2008-02-25

Re: C言語 グラフを描く場合のライブラリーインストール方法

すみません、「関数プロトタイプを追加してみては」と書きましたが、そうじゃないようですね。

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

に変更するか、ヘッダファイルを作成してインクルードしてみてください。

オフライン

 

#4 2018-07-29 20:42:48

shermansweet
メンバ
From: Tokyo Japan
登録日: 2009-09-15

Re: C言語 グラフを描く場合のライブラリーインストール方法

ご回答ありがとうございます。

.cファイルを分割している場合はコンパイルのコマンドを、
gcc `pkg-config --cflags --libs glib-2.0 dbus-glib-1` *.c -o graph.out
に変更するか、ヘッダファイルを作成してインクルードしてみてください。

.cファイルは分割していません。
方針としては良さそうなので、このまま少し頑張ってみます。

オフライン

 

Board footer

Powered by FluxBB