0

私は Makefile の経験がほとんどなく、学習しようとしています - そして、ほとんどのことを理解しています。しかし、私は次のようなディレクトリ構造を持っています:

/src/
    /mysql/
        mp_mysql.h
        mp_mysql.c
    /sqlite/
        mp_sqlite.h
        mp_sqlite.c
/lib/
    mysql.so
    sqlite.so

/src/mysqlそして、ファイルをコンパイル/lib/mysql.soしてsqliteに対して同じことを行うmakefileを作成しようとしています。誰かが私を助けてくれたら、おそらくそれを手に入れることができたでしょう!ありがとう!

PS プロジェクトは Python プロジェクトであり、C で MySQL 用の特別なアダプターを作成しています。私がオンラインで見つけたすべてのリソースは、1 つの大きな実行可能ファイルを作成する作業や作業を行うことができません。

4

1 に答える 1

0

まず、ディレクトリごとに Makefile を作成し、 を呼び出すときに上書きできる DIR_BUILD 変数を定義しますmake

次に、それぞれの子 Makefile を実行するプロジェクト Makefile を作成します。

例えば、

DIR_BUILD = '.'

mysql.so: mp_mysql.c mp_mysql.h
    gcc $< -o $(DIR_BUILD)/$@

そして、親 Makefile の場合:

SUBDIRS = `find . -mindepth 1 -maxdepth 1 -type d`

all:
    for d in $(SUBDIRS);                               \
    do                                                 \
      $(MAKE) --directory=$$d DIR_BUILD=../lib;       \
    done

保証はありません、どうなるか教えてください!

于 2012-05-30T07:43:46.880 に答える