我在Ubuntu 10.10上使用CUDA 4.0和GTX 570(計算capcability 2.0)以及GCC編譯器套件。據我所知,在編譯期間,CUDA編譯器驅動程序nvcc將.cu
文件拆分爲主機代碼和設備代碼,並調用主機編譯器來編譯主機代碼並分別編譯設備代碼。最後,它將生成的主機對象代碼和設備PTX代碼合併爲一個可執行文件。nvcc for linux使用的默認主機編譯器
對於Linux系統,編譯主機代碼時調用的默認編譯器是什麼? GCC套件的C編譯器(gcc
)還是C++編譯器(g++
)是 ?
也許它可以被'CC'環境變量覆蓋(就像'make'通常那樣)? –
你也可以'strace'程序(甚至專有的程序,比如'nvcc')來理解他們正在使用的系統調用(和外部程序)。 –
使用詳細標誌(-v),nvcc將在編譯期間轉儲所有已執行的命令。所以它會告訴你gcc或g ++是否被調用。 – tbalazs