0

「getoptpp」を自分のGNUMakefileからシェーディングされたライブラリとしてコンパイルし、それを自分のプログラムに静的リンクする方法を説明してください。

私がやること:

私のプログラムディレクトリで、getoptppライブラリを同じ名前のサブディレクトリにアーカイブ解除しました。Makefileに新しいターゲットを追加するよりも:(READMEは、SHAREDフラグを使用して作成したと言っています。$> make SHARED = n)

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

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

 myprogram: getoptpp
     g++ **** myprogram

しかし、make myprogramを呼び出した後、新しい.soはまったく作成されません。「makegetoptpp」を呼び出すとき-「最新です」と言ってください

*追加:.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/

また

私のc++プログラム用の非常に優れたコマンドライン解析ライブラリを提案してください。プログラムにリンクする.oオブジェクトとして簡単にコンパイルできること。ブーストなし!

4

1 に答える 1

1

ディレクトリは存在し、更新されていないため、はい、最新です。おそらく、の依存関係として宣言し.PHONYたいでしょう。

于 2012-04-15T10:23:13.180 に答える