2012-04-15 7 views
0

"getoptpp"を自分自身のGNU Makefileから影付きライブラリとしてコンパイルする方法を説明し、私は何GNU MAKE - 自分のMakefileからgetoptppライブラリを作成するか、C++のコマンドラインオプションライブラリを提案する

:私のプログラムディレクトリで

私は、同じ名前のサブディレクトリにgetoptppライブラリをアーカイブされていません。 (READMEは私が作るためSHAREDフラグを使用言う$> SHARED = Nを作る。)

getoptpp: 
    cd getoptpp; $(MAKE) SHARED=n 

私は私のプログラムの要求されたターゲットのリストにこのターゲットを追加したより:

私のMakefileに新しいターゲットを追加よりも
myprogram: getoptpp 
    g++ **** myprogram 

しかし、make myprogramを呼び出した後では、新しい.soは全く作成されません。 "getoptppを作る" 呼び出し -

* ADDED '最新である' と言う作る:.PHONYの提案の後にエラーがある*

cd getoptpp; make SHARED=n 
"Makefile", line 15: Missing dependency operator 
"Makefile", line 19: Need an operator 
"Makefile", line 24: Need an operator 
"Makefile", line 45: Missing dependency operator 
"Makefile", line 47: Need an operator 
make: fatal errors encountered -- cannot continue 
*** Error code 1 

http://code.google.com/p/getoptpp/

OR

私のC++プログラム用のかなり良いコマンドライン解析ライブラリをお勧めします。私は自分のプログラムにリンクするオブジェクトとして簡単にコンパイルできます。 No Boost!

答えて

1

ディレクトリが存在し、更新されていないため、最新の状態です。おそらくdeclare it as a dependency of .PHONYにしたいと思うかもしれません。

+0

ありがとうございます、今はエラーがあります。パーティーメイクファイルはボックスからです。 – abrahab

+1

これはどのようなシステムですか?あなたの 'make'はGNU' make'ではないようです。特にBSDホストで 'gmake'を起動する必要があります。 – geekosaur

+0

はい、今私はfreebsdにいます。ありがとう、しかし...私はこのlibのコンパイルのこの種のgmakeを使用する場合、私のmakefileは他の* unixシステムのために移植できないことを得ましたか? :(適切ではありません(( – abrahab

関連する問題