我的Makefile.am創建可執行文件main:「symplerTest」我想鏈接文件「geometry/source/*。o」。目前我像這樣鏈接它:autotools:Makefile.am:鏈接如果文件存在
symplerTest_LDFLAGS = \
...
geometry/source/*.o
這是行得通的。但現在在下一步中,我只想鏈接文件* .o存在。我這樣試過一個:
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))」, 「」)
謝謝!
我懷疑這是一個XY問題。爲什麼在世界範圍內,你會將'.o'文件指定給Automake項目中的鏈接器?這些不是中間構建目標嗎?通常,您可以通過控制將哪些對象分配給可執行文件來控制將哪些對象鏈接到可執行文件中,並讓Automake整理詳細信息。還有其他的選擇,例如構建和依賴便利庫,但是如果你的'Makefile.am'直接對'.o'文件做任何說明,那麼你就很可能是次優路徑。 –