編譯不成功多半軟體功能開關設置及依賴關系不支持。
首先要了解編譯的過程,真正了解了編譯的過程後就可以比較輕松的編譯各種軟體了。
1、configure,可以在configure 執行一下./configure --help來大致了解一下該軟體的一些開關和支持的性能,然後根據使用需要來設置需要開啟的性能和需要關閉的性能,以及需要哪些支持庫等等,然後再指定一下編譯路徑,做完這一切後,滿屏幕的check ....就開始了,這就是configrue的過程,和所做的事情
2、make,其實這一步才是真正的編輯步驟,而configure只是做一個環境的check,檢查系統環境及lib是不是對上一步所開啟的參數支持,只有check不出錯,也就是configure不出錯,就可以比較順利的進行編譯也就是make
3、make install 安裝,當成功編譯後就可以通過make install進行安裝了,安裝完成後就可以使用了。
比較容易報錯的地方就是configure這一步,因為這一步會檢查軟體及在configure這一步的設置開關功能中需要的依賴關系,並對現行系統進行檢查,尤其是最小化安裝的系統,報錯會比較多,可根據具體報錯內容來安裝相應的安裝包來完成軟體的依賴,直到check全部通過。有些軟體在make時也需要調用一些庫,具體要看軟體的reademe來了解具體編譯要求。如果再不行,就只能網上尋求幫助了。
另外,編譯也是一個經驗活,只編譯得多了,對一些常見的錯誤就會比較了解了,必定軟體依賴的庫常見的就那幾個,建議每編譯一款軟體做一個小筆記,把處理的錯誤或遇到的情況記錄下來,這樣以後再編譯時,會事半功倍!
2. APKTOOL怎樣用的,我反編譯成功之後回編譯失敗,出現下圖這樣的情況是怎樣的
編譯失敗是操作過程中錯誤造成的。解決方式如下:
1、首先去官方網站點擊下載可用的最新ApkTool。
3. C#程序編譯失敗是怎麼回事
某些dll沒有引用,或者項目沒有引用
4. 為什麼c語言編譯明明成功了運行時卻說編譯失敗
這個程序是沒有問題的,在VC6.0下是完全可以運行的。
編譯成功的話,運行應該也是可以的。
只有你保證你工程中就一個main函數。
另外你運行時編譯失敗的提示信息是什麼,可以貼出來。
5. 編譯的時候顯示「寫出編譯後的文件失敗」怎麼辦
這個是易語言編譯器的問題,多試很多次!不成功繼續!試100次內保准有一次是成功的!(只是你做不到)為什麼頻率需要那麼高?跟你說說原理吧,依我個人猜測這絕對跟殺軟有關,殺軟大多都是監視著桌面的一舉一動的,有新文件生成都會先去掃描一下,如果有危害會自動搞掉(易語言剛編譯的時候會生成一些文件,肉眼可能看不到,因為處理太快了,不過殺軟是更快的,只要一出威脅代碼之類都會幹掉或阻止干擾易語言編譯正常運作(當封裝為exe的時候就不行了,正如編譯失敗),所以只要你的速度快得過殺軟頻率過高殺軟也就放過了)
所以說解決方案:①關掉殺軟,②在桌面新建個文件夾然後往裡面編譯
6. java程序編譯成功後運行錯誤 但是在IDE中卻可以正確運行
首先,一點肯定的是你沒編譯就運行了。所以找不到.class文件。
其次,你java 2.MyFirstApp是什麼意思呢?反正這句話編譯器會理解為從包或者說文件夾名為2裡面尋找並執行MyFirstApp.class文件。如果你的.java源文件沒在F盤文件夾名為2的文件夾下的話,那你肯定是編譯不了也執行不成功的。
7. 能解釋下編譯失敗的原因嗎
編譯失敗的原因有很多種。其中主要有以下一些類型:
(1)、用戶編寫的源程序中有語法錯誤。例如:未定義某一個變數就進行引用。這一類錯誤是最簡單的,也是編譯器最容易檢查出來的,所以會產生對源程序的編譯失敗;
(2)、用戶編寫的源程序中有未對變數進行初始化就進行引用,也會導致程序運行錯誤。例如:用戶雖然定義了一個指向某一個內存地址的指針變數,但是在使用前卻未對它進行初始化,並進行任何判斷,就往該指針指向的內存地址賦予了一個數值,這種情況在語法上編譯器是檢查不出來的,但是程序一旦運行起來,肯定就會出現錯誤了。在 WINDOWS 系統下一般是:指向XXXX的內存不能夠為 Read (或者為 Write),要是在 UNIX/Linux 系統下就會發生 Core Dumped。
(3)、數組越界。這類錯誤也是編譯器檢查不出來的,但是一旦程序運行起來,程序的運行結果可能就是一個隨機的結果。而不是用戶需要得到的結果。
所以從編譯的實質上說,以上情況都應該屬於編譯失敗的類型。因為編譯器並無法阻止這些錯誤的發生,而是讓程序在運行時發生了各種各樣的意想不到的運行結果。
8. C語言編譯成功但生成失敗,先前明明可執行,一下子就有錯誤了
1編譯階段,執行的是對單個文件的轉換,從源代碼轉換成二進制文件。2鏈接階段,將每個源文件轉成的二進制文件,及相關的系統庫文件共同打包生成可執行文件。3從定義上可以看出,鏈接階段,出現錯誤有兩種可能:1)函數中引用了不存在的函數。2)編譯環境有問題,導致ld出錯。