2012-09-03 76 views

回答

1

如果你的內核樹內建設可以使用O變量:

make O=/path/to/mydir 

如果要編譯內核樹(模塊,或任何其他外部類型的程序),您需要將您的Makefile更改爲在不同的目錄中輸出。下面這在MY_DIR目錄輸出一個Makefile規則的一個小例子:

$(MY_DIR)/test: test.c 
    gcc -o [email protected] $< 

然後寫:

$ make MY_DIR=/path/to/build/directory 
+1

不幸的是,它似乎並沒有建築物外牆(出樹)內核模塊的時候幫助。在我的系統(12.1的OpenSUSE 86),我有一個目錄('〜/ sample')用一個簡單的內核模塊的kbuild和Makefile的,以及它的來源。我讓它只讀,並創建了一個build目錄,'〜/ sample_build'。從後者中,我執行了'make -C〜/ sample O = $(pwd)'。構建失敗是因爲構建系統仍嘗試在'〜/ sample'中創建'〜/ sample/.tmp_versions'目錄以及'.tmp * .o'文件。也許,需要其他東西才能使其工作? – Eugene

+0

在另一方面,'使... O = '似乎對於在樹的內核模塊正常工作。 – Eugene

+0

我儘量完善答案 – Federico