這是一個老帖子。然而,最近我發現了同樣的問題,我發現了一個基於@ HEKTO答案的替代方案。
我使用PETSc,一個庫來解決大型稀疏矩陣系統。他們構建系統,您需要使用您的makefile取決於兩個環境變量的「有」:PETSC_DIR和PETSC_ARCH必須在您的環境中設置....或者你可以將它們作爲選項,你的make命令!這就是我所做的。
我把通過NetBeans的產生和makefile在最後我說我有:
include ${PETSC_DIR}/conf/variables
注意如何取決於PETSC_DIR的定義。另外這個包括大量使用這個和PETSC_ARCH遍地。工具 - >選項:在「項目選項」選項卡中,填寫「生成選項」的文本框爲:PETSC_DIR =/path /到/ PETSc的PETSC_ARCH =一些拱
而且,現在你可以開始使用你的項目選項中的這些環境變量(和其他人在$ {PETSC_DIR}定義/ conf目錄/變量。例如,對於我的包含文件(右鍵單擊項目,然後單擊「屬性」): 在「C編譯器」,「包含目錄」下,我放入:$ {PETSC_DIR}/include
並且在「Linker」 ,我把「庫」放在$ {PETSC_LIB}(在上面的include文件中定義)。
現在我可以在NetBeans中構建並運行我的項目。如果我的PETSc版本發生變化,我只需要改變傳遞給變量的變量的定義,其他所有變量都得到解決。
我希望這可能有助於某人。它絕對爲我工作。最好的部分是我可以將代碼提供給其他人,他們可以像平常一樣使用「make」(不使用NetBeans)從命令行進行編譯,並定義上述環境變量。編譯現在沒有任何硬編碼路徑。
你可以指定每個文件的編譯選項,所以如果你右鍵點擊一個文件,你可以指定它爲'c'文件或'C++'文件...要選擇一個編譯器,你需要創建一個'toolkit' 。 – Mikhail 2013-02-13 03:54:10
@Mikhail這是一個自定義的生成文件,因此Netbeans不能對每個文件執行任何操作。 – Potatoswatter 2013-02-13 03:57:13
也許你可以改變你的makefile?你也可以自定義調用makefile,但我認爲你只需要選擇正確的'toolset'。 – Mikhail 2013-02-13 04:08:21