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

傳統編譯是靜態編譯嗎

發布時間: 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 手打很累的 採納吧

熱點內容
svn存儲伺服器 發布:2024-11-24 09:22:36 瀏覽:410
linux的硬碟格式 發布:2024-11-24 09:22:35 瀏覽:320
啟動ftp的命令是 發布:2024-11-24 09:12:33 瀏覽:601
腳本爬取數據 發布:2024-11-24 09:11:50 瀏覽:273
加密機制協議的是 發布:2024-11-24 09:11:47 瀏覽:826
易語言靜態編譯dll 發布:2024-11-24 09:11:43 瀏覽:583
cf游戲里最低配置怎麼調 發布:2024-11-24 09:02:51 瀏覽:81
java排序演算法效率 發布:2024-11-24 08:59:06 瀏覽:145
安卓vivo藍牙耳機掉了一隻怎麼找 發布:2024-11-24 08:45:28 瀏覽:847
加油站腳本 發布:2024-11-24 08:44:02 瀏覽:434