私のMakefile.amは実行可能なメインを作成します: "symplerTest"ファイル "geometry/source/*。o"をリンクします。現在、このようにリンクしています。autotools:Makefile.am:ファイルが存在する場合はリンク
symplerTest_LDFLAGS = \
...
geometry/source/*.o
これは機能します。しかし、次のステップでは、ファイル* .oが存在する場合にのみリンクしたいと思っています。私はこの1つを試してみました:
if ("$(wildcard $(geometry/source/*.o))","")
symplerTest_LDFLAGS += geometry/source/*.o
endif
が、次のエラーメッセージが出ます:
srcUnittest/Makefile.am:81: error: endif without if
srcUnittest/Makefile.am:79: warning: wildcard $(geometry/source/*.o: non-POSIX variable name
srcUnittest/Makefile.am:79: (probably a GNU make extension)
を問題は、( "$(ワイルドカード$(ジオメトリ/ソース/ * O))" であると思われます、 "")
ありがとうございました! 20 Conditionals で
私はこれがXY問題であると考えます。なぜAutomakeプロジェクトのリンカに '.o'ファイルを指定するのですか?これらは中間ビルドターゲットではありませんか?通常、どのオブジェクトが割り当てられているかを制御して、実行可能ファイルにリンクされているオブジェクトを制御し、Automakeに詳細を並べ替えるようにします。あなたの 'Makefile.am'が' .o'ファイルについて直接何かを言うならば、あなたは準最適なパスである可能性が非常に高いでしょう。 –