所以我我已經下載的gcc-7.1.0源從GCC FTP服務器歸檔和我這樣的配置吧:gcc是什麼使進程在做什麼?
../configure --enable-languages=c --disable-multilib
由於子目錄是在那裏我已經提取的來源。當前目錄名爲'objdir'。
現在,如果我以後像運行make -j 2
5分鐘開始,現在像1〜2時,我只是修改項目單一來源文件 - 在CC1
這基本上是我們所編制創建/更新objdir/gcc
約110MB總大小 - 一個完全有效的驅動程序,我可以使用/調試等。但之後像3或4秒這個文件被移動到objdir/prev-gcc
,然後我等待不超過20分鐘。
我想我會在創建prev-gcc
目錄並繼續處理其中的內容後繼續查殺make過程,但我想知道這個怪癖的原因是什麼。就像make過程將完全正在運行的編譯二進制文件移動到objdir/prev-gcc
然後繼續做一些看起來非常非常(我記得等待整天完成一次)的原因是什麼,或者我在這裏忽略了一些明顯的東西。
運行'make -j2 bootstrap'並且不要中斷/終止進程。這個編譯器分三個階段構建 - 第一個使用引導編譯器構建GCC;第二個使用剛剛構建的GCC再次構建GCC;第三次再次建立GCC,確保結果是一樣的。在MacBook Pro上(2016年15月15日),我使用'make -j8 bootstrap',並且整個過程(3個階段)花費了一個多小時。這與SSD而不是旋轉磁盤完全不同。你是否有能力使用'-j4'或'-j8'? –
另請注意[安裝說明](https://gcc.gnu.org/install/configure.html):_First ,我們強烈建議將GCC構建到不在源代碼樹內的源代碼的獨立目錄中,這就是我們通常構建GCC的方法;構建srcdir == objdir仍然可以工作的地方,但是沒有得到廣泛的測試; objdir是srcdir的子目錄不受支持._您正在使用_objdir_作爲_srcdir_的子目錄 - 根據文檔,您的構建不受支持。 –
在'.../gcc-7.1.0'中創建源代碼,我創建'.../gcc-7.1.0-obj',然後使用'cd .../gcc-7.1.0-obj; ../gcc-7.1.0/configure ...'和'make -j8 bootstrap'。 –