當前位置:首頁 » 編程軟體 » 傳統編譯是靜態編譯嗎

傳統編譯是靜態編譯嗎

發布時間: 2024-10-09 18:08:13

① 如何編譯C/Fortran動態/靜態鏈接庫

首先,傳統的編譯,也就是
靜態編譯
是把
源文件
翻譯成目標文件,這個是一次性過程,也就是你所謂的靜態編譯。
後來的Java和.NET等語言,首先編譯成中間形式,然後運行過程中根據需要編譯成本地代碼(注意這個過程不是一次性的,下次運行重新編譯),這個就是JIT(即時編譯)技術,從即時編譯發展出了動態編譯技術
————————————
(傳統的)編譯完成後,像C/C++、Fortran、匯編等語言,可以把多個目標文件合並到一個
庫文件
中,這個就是靜態庫。比如常說的
庫函數
printf就是libc裡面的函數。
如果有了啟動函數(main),main裡面使用了printf,就可以通過
靜態鏈接
技術,從libc中提取出printf所在的文件加入到可執行文件中,如果printf還需要其它函數,就繼續搜索並加入列表,直到形成一個
閉包
。這個就是靜態鏈接。
可是靜態鏈接有個明顯的缺點,如果每個程序都需要printf,那麼printf這個函數的代碼就會同時存在在每個程序中,這樣也太佔地方了吧。所以發明了動態連接技術,其實有兩種形式。無論哪一種,都是首先記錄下需要調用printf這個函數以及所在的
動態庫
,等到運行的時候再載入動態庫,從動態庫中找到真正的printf去執行。
由於,
動態鏈接
技術需要一些額外的信息,傳統的靜態庫是不具備的,這些額外信息主要是重復載入和卸載時所需要的一些代碼,因此需要
動態鏈接庫

② 靜態編譯和動態編譯有何不同

靜態編譯就是把庫函數編譯到你的程序里 這樣編譯的好處是 可以適應不同的平台 如果你是用window系統的話不建議用靜態編譯 因為這樣會使你的代碼量增大
動態編譯就是不把庫函數編譯到你的程序里

③ 易語言靜態編譯和獨立編譯的區別

靜態編譯指的是編譯的軟體包含易語言運行環境,可以在任意正常windows、Linux運行,普通的編譯則需要在安裝了易語言的電腦上運行,沒有易語言運行環境打開就會報錯。,

④ 在易語言里,什麼叫做靜態編譯,什麼叫做動態編譯那可以生成安裝包的是什麼編譯具體見補充

靜態編譯.就是單獨形成一個EXE執行文件..這個文件可以直接發送給別人用.
動態編譯.會在EXE執行文件生成後.另多一個文件..這個文件是這個執行文件的支招庫文件..必須和EXE執行文件在同一文件夾時..才能執行EXE文件

⑤ Java代碼的靜態編譯和動態編譯中的問題是什麼

Java代碼正常是靜態編譯成位元組碼,由對應平台的JVM載入執行,靜態編譯無法動態擴展功能。動態編譯有兩種方式實現:

  1. 源碼編譯,需要調用Java Compiler,程序需要運行於JDK(而不是JRE)之上。

  2. 動態位元組碼生成技術(如CGLib、ASM)創建類。

動態編譯可以簡化代碼,增強類功能,但也帶來了代碼復雜度,線上不易維護。

⑥ 易語言的靜態編譯和獨立編譯的區別

以前易語言只有獨立編譯,封裝一個空程序都有600多kb,而且兼容性差,部分電腦運行不了,殺毒軟體報毒也厲害。
後來出了靜態編譯,體積沒那麼大了,兼容性好像也很好,報毒的概率也低了,區別應該就在這吧。

⑦ 易語言中的編譯和靜態編譯有何區別

靜態編譯就是編譯器在編譯可執行文件的時候,將可執行文件需要調用的對應動態鏈接庫(.so)中的部分提取出來,鏈接到可執行文件中去,使可執行文件在運行的時候不依賴於動態鏈接庫。而編譯就是把可執行文件和支持庫一起寫出到外部,在需要的時候直接對其中一個支持庫進行搜索某一條命令.
打個比方.
你家有6個罐子,裡面分別放了1塊,5塊,10塊,20塊,50塊,100塊.
然後你出門的時候要帶每一種錢各一個,所以就從這六個罐子里每個罐子都拿出一張錢.
這就是靜態編譯.
我再打個比方.
你家還是有6個罐子,裡面分別放了1塊,5塊,10塊,20塊,50塊,100塊.
然後你出門的時候,還是想要都帶一種,然後你就不是每個罐子里拿錢了,而是直接把整個罐子都帶在了身上出門.
相比起來,靜態編譯要輕松,小巧了許多了.

lz 手打很累的 採納吧

熱點內容
上傳速度對網速的影響嗎 發布:2024-10-09 20:09:38 瀏覽:560
密碼鎖芯在哪裡能買到 發布:2024-10-09 20:05:33 瀏覽:451
傳奇伺服器強行下線是什麼意思 發布:2024-10-09 20:05:11 瀏覽:919
sqljoinas 發布:2024-10-09 19:48:01 瀏覽:390
文本編輯器沒有編譯器可以嗎 發布:2024-10-09 19:39:36 瀏覽:995
linux環境變數oracle 發布:2024-10-09 19:24:36 瀏覽:317
pythonimport找不到模塊 發布:2024-10-09 19:23:45 瀏覽:508
安卓怎麼卸載插件 發布:2024-10-09 19:07:13 瀏覽:930
see腳本 發布:2024-10-09 19:07:12 瀏覽:423
sqlleftouter 發布:2024-10-09 18:46:46 瀏覽:760