我有一個C++程序可以在多臺使用網絡文件系統的機器上運行。對於我的程序使用的每個C++庫,我在〜/ program_files/machinename/libraryname下爲每臺機器安裝了一個版本。用於在不同機器上運行的程序的Makefile
「machinename」是通過bash命令「hostname」獲得的。在我使用的機器上,「主機名」輸出類似「io21.aaa.bbb.edu」的內容,而我只將「io21」作爲「機器名」作爲庫的路徑。在bash中,我瞭解到,
$ HOST =
hostname
#現在HOST的值是 「io21.aaa.bbb.edu」$ HOST = $ {HOST %%。*}#提取物「 io21" ,從 「io21.aaa.bbb.edu」
$回聲$ {HOST}
io21
在我的程序的Makefile中,我想打電話給這些慶典命令來指定路徑根據當前的機庫:
HOST:= $(殼主機名)
HOST:= $(殼$ {。HOST %% *})
LDFLAGS = -L $ {HOME}/PROGRAM_FILES/$ {HOST} /庫名稱/ lib中
CXXFLAGS = -Wall -I $ {HOME}/PROGRAM_FILES/$ {HOST} /庫名稱/包括
的第一行是工作即HOST是「io21。 aaa.bbb.edu「,但提取」io21「的第二行不起作用,HOST仍然是」io21.aaa.bbb.edu「。
我想知道我應該如何解決這個問題?
感謝和問候!