ページ 11

質問: .hと.c,.cppを分けた場合どうなるのか

Posted: 2017年7月13日(木) 20:23
by forest
[1] 質問文
 [1.1] 自分が今行いたい事は何か
.hファイルと.c,.cppファイルが混在しているため、フォルダ分けしたいです
 [1.2] どのように取り組んだか(プログラムコードがある場合記載)
別ディレクトリのcファイルとつなげる方法を探しましたが、見つかりませんでした

 [1.3] どのようなエラーやトラブルで困っているか(エラーメッセージが解る場合は記載)
別ディレクトリにあるファイルをどうやるか

 [1.4] 今何がわからないのか、知りたいのか
まったくわかりません

[2] 環境  
 [2.1] OS : Windows7
 [2.2] コンパイラ名 :gcc

[3] その他
 ・どの程度C言語を理解しているか
入門書を呼んでそれは大体できるようになりました
コンパイラコマンドはよくわかりません

 ・ライブラリを使っている場合は何を使っているか
windows.h を使っています

Re: 質問: .hと.c,.cppを分けた場合どうなるのか

Posted: 2017年7月13日(木) 21:53
by みけCAT
別ディレクトリにある.hファイルは、素直にソースファイルからの相対パスで#include "~"を書くか、-Iオプションでヘッダを探すディレクトリを指定すればincludeできるはずです。

Re: 質問: .hと.c,.cppを分けた場合どうなるのか

Posted: 2017年7月14日(金) 00:23
by Dixq (管理人)
一つ上のフォルダにあるxx.hをインクルードする時は
#include "../xx.h"
と書きます。
一つ上のフォルダにある「head」というフォルダ内にある場合は
#include "../head/xx.h"
と書きます。
このような指定のパスを「相対パス」と言います。

ただ、.cと.cppが混在しているのは理解できません。
何故混在しているのですか?

Re: 質問: .hと.c,.cppを分けた場合どうなるのか

Posted: 2017年7月14日(金) 21:11
by forest
返信ありがとうございます。
ただし、少しうまく伝わっていなかったようです
/h/lib.h
/c/lib.c
とあった場合、lib.hがlib.cのヘッダファイルと定義?するにはどうするのでしょうか?
よろしければ最返信お願いいたします


みけCATさん
-lオプションというものがあるのですか、ありがとうございます

Dixq(管理人)さん
相対パスというものがあるのですね、初めて知りました。

C言語とc++言語どちらもやっていて、どちらでもできるのかなと思いまして、「.c,.cpp」という表記をさせていただきました。

Re: 質問: .hと.c,.cppを分けた場合どうなるのか

Posted: 2017年7月14日(金) 21:53
by みけCAT
forest さんが書きました:/h/lib.h
/c/lib.c
とあった場合、lib.hがlib.cのヘッダファイルと定義?するにはどうするのでしょうか?
コンパイラ(gcc)にそのような関連を定義する機能は無いと思うので、ドキュメントにそう定義すると書くのがいいと思います。
自分がコンパイラの機能を知らないだけだったらごめんなさい。

Re: 質問: .hと.c,.cppを分けた場合どうなるのか

Posted: 2017年7月14日(金) 21:58
by forest
すばやい返信ありがとうございます
ドキュメントとは何でしょうか?

Re: 質問: .hと.c,.cppを分けた場合どうなるのか

Posted: 2017年7月14日(金) 22:18
by みけCAT
forest さんが書きました:ドキュメントとは何でしょうか?
ソフトウェアの仕様や設計について人間にわかりやすいように説明した文章です。

Re: 質問: .hと.c,.cppを分けた場合どうなるのか

Posted: 2017年7月14日(金) 22:28
by forest
fmfm
ありがとうございます
少し試してみます