當我想運行make
產生它總是使用Sun make
位於 在/usr/local/bin/make
而不是GNU使可在/usr/sfw/bin/gmake
找到一些可執行文件。選擇不同的可執行文件在bash
如何告訴操作系統使用GNU make而不是Sun的?我需要以某種方式覆蓋路徑嗎?
當我想運行make
產生它總是使用Sun make
位於 在/usr/local/bin/make
而不是GNU使可在/usr/sfw/bin/gmake
找到一些可執行文件。選擇不同的可執行文件在bash
如何告訴操作系統使用GNU make而不是Sun的?我需要以某種方式覆蓋路徑嗎?
對於名稱相同的兩個可執行文件,請在PATH
變量中重新排序路徑,因爲將使用第一個匹配項。
否則,您~/.profile
或~/.bashrc
文件中定義的別名:
alias make="/usr/sfw/bin/gmake"
或函數:
make() { /usr/sfw/bin/gmake "[email protected]"; }
。注意,別名在交互模式下才能正常工作。腳本不會看到它們。在這種情況下使用函數。
可以鏈接/ usr/sfw/bin中/只要所在的目錄鏈接它使用gmake到/ usr/bin中的例子是之前在/ usr/local/bin目錄在PATH變量 從而
cd /usr/bin
ln -s /usr/sfw/bin/gmake make
只要確定路徑中沒有製作完成即可。 否則你總是可以打電話給gmake而不是make使用gnu-make併爲sun-version-make留下make。
否則,你可以使用別名作爲在過去後
把額外的東西放到'/ usr/bin'中並不是一個好主意 - 把這個區域留給包管理,有一天可能會選擇在那裏安裝一個'make'。 – reinierpost
如果手動運行make命令,然後只需鍵入gmake
而不是make
。它將運行GNU版本(假設您的PATH
)變量設置正確。
如果有一個IDE或其他工具調用make
,那麼您需要告訴它使用gmake而不是製作,取決於您使用的是哪種工具。
另一種可能性是:如果你有一個遞歸makefile,稍後調用「make」,即使你用「gmake」啓動它,然後修改makefile以將其中的硬編碼「make」替換爲「$(MAKE) 」。 – slowdog
使用2個單獨命名的程序,我很困惑爲什麼有一個問題。如果你在命令行鍵入'make',爲什麼它會運行'gmake'?你是說你輸入了'gmake'並運行'make'? – shellter