Re: [問題] 到底lib是什麼呢?

看板C_and_CPP (C/C++)作者 ( )時間16年前 (2009/04/30 02:47), 編輯推噓5(5020)
留言25則, 5人參與, 最新討論串2/3 (看更多)
※ 引述《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
小弟我才他google到的.dll共用應該只是解釋一般人使用上
04/30 03:03, 1F

04/30 03:03, , 2F
.dll的運作看起來是共用的, 而不是code/binary的內容@@"
04/30 03:03, 2F

04/30 03:18, , 3F
請教一下 您說static lib 其實就是很多object files的archive
04/30 03:18, 3F

04/30 03:19, , 4F
意思是說不是一個.cpp變成一個lib而是可以全部變成一個lib?
04/30 03:19, 4F

04/30 03:22, , 5F
另外看了一下您的網頁....您六歲就開始接觸程式= =太神了吧
04/30 03:22, 5F

04/30 04:01, , 6F
tinlans等級頗高的
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
我小時候也是用qbas/etbas寫了簡易的戰車遊戲
04/30 04:47, 11F

04/30 04:48, , 12F
不過程式碼醜斃了 全都擠在同一個bas 還goto了一堆
04/30 04:48, 12F

04/30 04:48, , 13F
最後就連維護都很懶了
04/30 04:48, 13F

04/30 04:50, , 14F
csse的`怎麼知道適不適合走程式這條路`的答案是維持的動力
04/30 04:50, 14F

04/30 04:52, , 15F
不過看最近新聞...國小作機器人 還有以前某個寫ga組合midi
04/30 04:52, 15F

04/30 04:52, , 16F
倒是蠻令人驚奇的...
04/30 04:52, 16F

04/30 05:01, , 17F
資料共用在nt以上應該都不會是預設 95/98才是
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
話說, QB裡不是本來很多地方就在goto的嗎?_?
04/30 10:29, 20F

04/30 10:54, , 21F
QB有比較decent的function/sub了 ETBAS是GWBASIC那一期
04/30 10:54, 21F

04/30 10:54, , 22F
的,沒有這些近代的program unit,不是goto就要靠gosub
04/30 10:54, 22F

04/30 13:13, , 23F
啊對不起, 我搞錯了, 我說的應該是BASIC, 那個還可以自
04/30 13:13, 23F

04/30 13:14, , 24F
己打行號: 10 xxxx 20 xxxx 30 xxxx 的那個Orz
04/30 13:14, 24F

05/01 14:46, , 25F
每個 .cpp 可以各自變成 .obj,這些 .obj 可收成一個 lib
05/01 14:46, 25F
文章代碼(AID): #19-A2a4_ (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #19-A2a4_ (C_and_CPP)