Makeと分割コンパイル

地味にC言語の理解が足りない気がする・・・・。
つーか仕様がクソなんだよな。C言語ウンコすぎ。
という批判はおいといて・・・・
分割コンパイルの仕組みを良く理解していない。
Makefileでオブジェクトファイルを指定すれば、ソース上でincludeしてない関数でも使えるっぽい。
あれ?だったらincludeってなんのためにやるんだっけ?
Makefileの記述を簡略化するため?
以前の記事によると、ソース上で使用する定義は全てソース内に(includeで引っ張ってくるのも含む)記述しておかなければならないはずだが・・・・。
うーん・・・make周りの知識も甘いな・・・。
普段スクリプト言語ばっかりいじってるから、
久々に、Cを触るときついものがあるぜ・・・。
※追記
Makefileへの追加と、やっぱりincludeも必要だった。
さっきまでinclude無しで動いていたんだが・・・。謎。

3 件のコメント

  • おぉ、メイクファイルは置くが深いようで浅い。
    軽くイナシテクレ!
    コネタ:オーバーレイをエフェクトでしか知らない貴方は最近のPです。

  • どこでincludeしてるか分からない罠とかありえますよ。
    includeしてるhファイルの中でincludeしているhファイルとか、後で整理してて汗汁が出るような罠がいっぱい。

  • Toいとちん
    >コネタ:オーバーレイをエフェクトでしか知らない貴方は最近のPです。
    使った事ないからよくわかんなーい( ´ー`)y-~~
    Toダメリーダー
    >includeしてるhファイルの中でincludeしているhファイルとか、後で整理してて汗汁が出るような罠がいっぱい。
    ↑を解決するために、ヘッダファイルには二重インクルード防止のdefine文を追加するのがお作法な訳で・・・・。
    ちゃんとしたヘッダファイルならどこでインクルードしても問題は出ないはず。
    コンパイラの最適化に影響があるかは知りませんがね( ゚Д゚)y-~~

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です