靜動態編譯

2021-06-21 09:32:03 字數 691 閱讀 8130

有的時候我們經常會把自己編譯執行通過的.exe檔案放到其他機子上執行,卻驚奇地發現系統提示找不到什麼相關檔案的問題,導致編寫的程式只能孤芳自賞。

其實這個問題的緣由主要是編譯器預設執行動態編譯,所謂動態編譯,就是程式執行所需要的庫等相關檔案是執行時才新增上去的,由於在本機當然有那些檔案,可是到了其他機子上,就會發現找不到的錯誤,各種機子千差萬別,發生這種錯誤也就在所難免。

與動態相對應的自然為靜態編譯,所謂靜態編譯,就類似打包行為,編譯時會把程式所需的檔案打包在一起,這時只要本機能通過,其他機子也能執行,因為它裡面就包含了程式正常執行的相關檔案。

到了這裡,很多人覺得奇怪,因為明顯第二種即靜態編譯就是我們所需要的,為何還需要動態編譯呢?

其實事件無法盡善盡美,魚與熊掌不可兼得,靜態編譯雖然能在不同機子上執行,可它由於加入了許多檔案,導致體積變得龐大,而動態編譯就相對小些,所以怎們選擇,還是要根據實際情況分析。

下面提供一種在vs2013上靜態編譯的方法:

Oracle listener動態註冊與靜態註冊

一 什麼是註冊 註冊就是將資料庫作為乙個服務註冊到監聽程式。客戶端不需要知道資料庫名和例項名,只需要知道該資料庫對外提供的服務名就可以申請連線到資料庫。這個服務名可能與例項名一樣,也有可能不一樣。在資料庫伺服器啟動過程中,資料庫伺服器會向監聽程式註冊相應的服務 無論何時啟動乙個資料庫,預設地都有兩條...

靜 動態庫的簡單製作

靜態庫 1.a.建立靜態庫專案 b1.配置支援的最低版本 b2.設定適配所有模擬器的架構 b3.建立乙個內容類 b4.新增公開檔案 2.生成4個.a檔案並且合併 分別按照debug環境和release環境,生成真機很模擬器的.a檔案 分別合成debug和release真機與模擬器的.a檔案 a.de...

靜 動態鏈結庫使用總結

編寫方法 visual studio為例 一 靜態庫編寫 1.首先當然是開vs然後建立乙個靜態庫工程啦 2.格式.一般有標頭檔案.h和原檔案.cpp,當然你也可以寫一在乙個cpp裡.mydll.h extends c mydll.cpp include mylib.h int sum int num...