SCons

SCons:基本的な使い方

実行ファイルのビルド

//hello.c
int main(){
{
        printf("Hello,world!\n");
}
というソースファイルに対して、Makefileに当たるSConstructに
#SConstruct
Program('hello.c')
と記述し、
$scons
でビルドすることが出来ます。 実行ファイル名を自分で定義するには、
#SConstruct
Program('hello','hello.c')
のようにします。複数ソースの場合は、
#SConstruct
Program(['hello1.c,hello2.c,hello3.c])

#実行ファイル名を指定するときは
#Program('hello',['hello1.c,hello2.c,hello3.c])

#複数ソースの記述が面倒臭いなら、以下のように
#Program(Glob('*.c'))
です。

ライブラリのビルド

#SConstruct
#静的ライブラリ
StaticLibrary('foo',Split('f1.c f2.c f3.c'))

#動的ライブラリ
SharedLibrary('foo',Split('f1.c f2.c f3.c'))

ライブラリのリンク

#SConstruct
#LIBSにライブラリ、LIBPATHにライブラリフォルダを指定する
Program('prog.c',LIBS='m',LIBPATH=['/usr/lib','/usr/local/lib'])

インクルードパス、依存関係?

#SConstruct
#CPPPATHは、Makefileで言う-Iオプションっぽい
Program('hello.c',CPPPATH=['.','/home/project/include'])
CPPPATHで指定した先に、hello.cがインクルードするhello.hがあったとすると、 hello.hを変更すると自動的にhello.cをコンパイルし直してくれるらしい。

コンパイルオプション

#SConstruct
Program('hello.c',CCFLAGS='オプション')

環境設定

#SConstruct
import os
env=Environment(CC='gcc,CCFLAGS='-02')
env.Program('hello.c')

参考URL

公式ドキュメント

|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|