Re: [問題] 到底lib是什麼呢?
※ 引述《QQ29 (我愛阿蓉)》之銘言:
: 我沒有自己寫過lib或是dll
: 而我一直有自以為對的一個觀念就是
: .h和.cpp .cpp可以換成lib
: lib就是.cpp , 實作的包裝.... 但其實要我解釋 lib到底是什麼我也不知道
: 他先把CPP 作成lib 是把cpp檔案textfile 作了什麼事呢??
: 我試著google一下 看比較general解釋 都不太解釋我想問的這個部份
: 想請版友給點指點~~
計概課本會告訴你,
純文字的程式碼經過 compile 以後變成 object file,
把一個或多個 object files 做 linking 之後就會變成 executable file。
static lib 其實就是很多 object files 的 archive,
也就是把一堆編譯出來的 .obj (或 .o)檔封在一個檔案裡,
這樣你在 linking 的時候只要指定一個 lib 檔而不需要指定一堆 objec files。
: 然而dll更是我完全沒碰過的東西
: 我只知道我執行程式時 要把該用的dll擺好 而dll在compile time是沒有關係的..
: 也是google了一下 知識+之類的 解釋的讓我更不懂了
: 有提到什麼許多程式共用的XXXXX (不知道是什麼...)
: 那如果共用 不會造成race condition或是什麼之類的怪事情嘛?
共用 text section 並不會有什麼問題,
因為那個地方本來就不允許在 runtime 被寫入新值,
而且裡面的 code 一般會被編譯成 position independent code,
所以存取資料上也不會發生奇怪的問題。
: 一般寫程式 我就沒有碰過真的需要自己寫dll這件是 導致我真的對這一無所知
: 只知道她好像是run time程式會去跟他作某些事情....
: 請大家給一點正確的觀念好嘛.....
: 是什麼必要 會需要去寫dll呢?
可以共用 text section 的意義當然就是省 memory,
另外一個就是為了彈性,
不過怎麼做到彈性這點就真的說來話長了,
建議你自己動手玩過 DLL 以後再來問進一步的問題。
物件導向的技術也能用在 DLL 上,
比方說 header 只有 base class,
dervied classes 被實作在 DLL 內,
設計核心部分的人只需要以多型的方式利用物件即可,
元件導向的程式開發模式也常會用這種技巧;
不過你想在 Windows 上玩這招可能還會遇上一些問題,
特別是跨 DLL 用 new/delete 可能會有事,
但現在講這些可能也太早了。
--
Ling-hua Tseng (uranus@tinlans.org)
Department of Computer Science, National Tsing-Hua University
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage: https://www.tinlans.org
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.115.183
推
04/30 03:03, , 1F
04/30 03:03, 1F
→
04/30 03:03, , 2F
04/30 03:03, 2F
推
04/30 03:18, , 3F
04/30 03:18, 3F
→
04/30 03:19, , 4F
04/30 03:19, 4F
→
04/30 03:22, , 5F
04/30 03:22, 5F
→
04/30 04:01, , 6F
04/30 04:01, 6F
→
04/30 04:42, , 7F
04/30 04:42, 7F
→
04/30 04:43, , 8F
04/30 04:43, 8F
→
04/30 04:45, , 9F
04/30 04:45, 9F
→
04/30 04:45, , 10F
04/30 04:45, 10F
→
04/30 04:47, , 11F
04/30 04:47, 11F
→
04/30 04:48, , 12F
04/30 04:48, 12F
→
04/30 04:48, , 13F
04/30 04:48, 13F
→
04/30 04:50, , 14F
04/30 04:50, 14F
→
04/30 04:52, , 15F
04/30 04:52, 15F
→
04/30 04:52, , 16F
04/30 04:52, 16F
推
04/30 05:01, , 17F
04/30 05:01, 17F
推
04/30 10:28, , 18F
04/30 10:28, 18F
→
04/30 10:29, , 19F
04/30 10:29, 19F
→
04/30 10:29, , 20F
04/30 10:29, 20F
→
04/30 10:54, , 21F
04/30 10:54, 21F
→
04/30 10:54, , 22F
04/30 10:54, 22F
推
04/30 13:13, , 23F
04/30 13:13, 23F
→
04/30 13:14, , 24F
04/30 13:14, 24F
→
05/01 14:46, , 25F
05/01 14:46, 25F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章