質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

3回答

4167閲覧

#include <wiringPi.h>  PATHの設定はされているのでしょうか?

eisaku123

総合スコア77

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

1グッド

0クリップ

投稿2020/03/14 02:07

こんにちは

include <wiringPi.h> にかんして

wiringPi.hのありかは、/usr/include にあることはわかりましたが、環境変数にはのっていないです。
cの仕様で自動で見に行くのでしょうか?また、設定を変えることはできるのでしょうか?

c

1#include <wiringPi.h> 2 3#define GPIO17 17 4 5int main(void) { 6 int i; 7 8 if(wiringPiSetupGpio() == -1) return 1; 9 10 pinMode(GPIO17, OUTPUT); 11 12 for(i=0; i<10; i++){ 13 digitalWrite(GPIO17, 0); 14 delay(950); 15 digitalWrite(GPIO17, 1); 16 delay(50); 17 } 18 19 digitalWrite(GPIO17, 0); 20 21 return 0; 22}
s.k👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/03/14 02:15

gccをお使いだと思いますが、ビルド(コンパイル)の際に、どのようなコマンドラインを入力していますか。"-I"オプションでinlcludeディレクトリを追加するようなかたちになると思います。
eisaku123

2020/03/14 02:25

gcc -o sample wiringpi_sample.c -I/usr/local/include -L/usr/local/lib -lwiringPi です。 ちなみに -I/usr/local/include -L/usr/local/lib -lwiringPi は何をやっているのか意味不明です。
dodox86

2020/03/14 02:29

> 何をやっているのか意味不明です。 そこが最初に分かれば自己解決できたはずのご質問ですね。。。
Takumiboo

2020/03/14 04:58

ここに書き込んでてなにか気がつくことないですかね…?
eisaku123

2020/03/14 06:49

気がつくこと?
Takumiboo

2020/03/14 07:42

dodox86さんもおっしゃっていますが…。 「wiringPi.h」のPATHを通していないのに、なぜインクルードできているのかが不思議なんですよね? で、コンパイル時に「gcc -o sample wiringpi_sample.c -I/usr/local/include -L/usr/local/lib -lwiringPi」と入力されているわけですよね。 「何をやっているのか意味不明」な「-I/usr/local/include -L/usr/local/lib -lwiringPi」を見て、なにか思いませんか?
eisaku123

2020/03/14 13:38

>「wiringPi.h」のPATHを通していないのに、なぜインクルードできているのかが不思議なんですよね? ⇒はいそうです。 >で、コンパイル時に「gcc -o sample wiringpi_sample.c -I/usr/local/include -L/usr/local/lib -lwiringPi」と入力されているわけですよね。 ⇒-I/usr/local/include -L/usr/local/lib -lwiringPi が影響していると考えられます。 >「何をやっているのか意味不明」な「-I/usr/local/include -L/usr/local/lib -lwiringPi」を見て、なにか思いませんか? ⇒y_waiwaiさんを引用させていただいて、 -I/usr/local/include インクルードパス設定のオプション -L/usr/local/lib ライブラリファイル設定のオプションです。 -lwiringPi なにを意味しているのかわかりません。 ただし、上記の-I...と-L...を削除して以下のようにしたらコンパイルできます。 gcc -o sample wiringpi_sample.c -lwiringPi -lは不思議です。
Zuishin

2020/03/14 23:01

リンクするライブラリを指定しています。わからないオプションは man を見れば書いてあるので何も不思議なことはありません。
eisaku123

2020/03/15 02:35

Zuishinさん man l としても検索されないです。 例えば man w だと検索できます。
Takumiboo

2020/03/15 02:39

えぇ…オプションの文字で検索したってそりゃ出てこないでしょう…。 Zuishinさんは「man gcc」でgccコマンドのマニュアルを読んで、その中で-lオプションの解説を読んでください、と書いているのです。
eisaku123

2020/03/15 02:59

man gcc -l と入力すると gccというマニュアルはありません マニュアルページが利用できない場合のヘルプについては'man 7 undocumented'を見てください lというマニュアルはありません とでて、できないです。 泣
Takumiboo

2020/03/15 03:04

ああ、Raspberry Piでしたね、失礼しました。標準だとインストールされていないようですね。 gcc側にもヘルプコマンドがあるので、「gcc -v --help」で出てくるでしょう。
eisaku123

2020/03/15 06:06

Takumibooさんアドバイスありがとうございます。 gcc -v --help  したらたくさんでてきました。 調べた結果 -l は以下の意味でよろしいでしょうか -l LIBNAME, --library LIBNAME ライブラリ LIBNAME を探索する
Takumiboo

2020/03/15 07:30

よろしいも何も、そう書いてあればそのとおりでしょう
eisaku123

2020/03/15 07:39

Takumibooさん コメントありがとうございます
guest

回答3

0

ベストアンサー

eisaku123さん、

ちなみに、echo | gcc -E -Wp,-v - を実行すると、使用されるincludeパスがわかります。

実行例: RaspberryPi4B + Raspbian-2020-02-13(Buster)

pi@raspberrypi:~ $ echo | gcc -E -Wp,-v - ignoring nonexistent directory "/usr/local/include/arm-linux-gnueabihf" ignoring nonexistent directory "/usr/lib/gcc/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/include" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/arm-linux-gnueabihf/8/include /usr/local/include /usr/lib/gcc/arm-linux-gnueabihf/8/include-fixed /usr/include/arm-linux-gnueabihf /usr/include End of search list. # 1 "<stdin>" # 1 "<built-in>" # 1 "<command-line>" # 31 "<command-line>" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 32 "<command-line>" 2 # 1 "<stdin>" pi@raspberrypi:~ $

投稿2020/03/15 04:29

mt08

総合スコア1825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eisaku123

2020/03/15 05:27

mt08さん私の方も同じように表示されました。 アドバイスありがとうございます。
guest

0

cの仕様で自動で見に行くのでしょうか?

gccの標準の仕様で、/usr/includeや/usr/local/includeは見に行くようになっています。
コンパイル時に -v オプションを付けることで、どこを標準で探しに行くのかを調べることが出来ます。
https://takuya-1st.hatenablog.jp/entry/20120920/1348511712

投稿2020/03/14 07:47

Takumiboo

総合スコア2536

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

eisaku123

2020/03/16 13:40

Takumibooさんありがとうございます。参考になりました
guest

0

それでコンパイルが正常に行えているなら、その設定はなされています
ちなみに、
-I/usr/local/include
インクルードパス設定のオプションです
-L/usr/local/lib
ライブラリファイル設定のオプションです。
ぐぐれば詳細が出てくるかと思いますよ

投稿2020/03/14 05:00

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Takumiboo

2020/03/14 07:39

質問は「設定されているかどうか」ではないのでは?
y_waiwai

2020/03/14 07:44

どっちでしょうね。 まあ、違ってればコメントが来るでしょうし、来なければそういうことなんでしょう
Takumiboo

2020/03/14 07:47

そもそも何が分からなくて質問しているのかも分からないのかもしれませんが…
eisaku123

2020/03/14 13:49

>質問は「設定されているかどうか」ではないのでは? ⇒はいそうです。 -I... や-L.... -lwiringPiがあることから設定されていないと考えられます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問