大家都知道現(xiàn)在C/C++的編譯是分為兩個(gè)部分的,即編譯和連接:源文件經(jīng)編譯后生成目標(biāo)文件,然后再連接為可執(zhí)行文件.
我對(duì)這兩個(gè)階段要做的工作還沒(méi)有了解,所以我現(xiàn)在可以這樣設(shè)想(也有可能是無(wú)知的設(shè)想):
以一種標(biāo)準(zhǔn)的方式定義目標(biāo)文件的格式,使之在各操作系統(tǒng)上生成的目標(biāo)文件完全一致,而且都可以在相應(yīng)的平臺(tái)上進(jìn)行正確的連接.這樣的話,就相當(dāng)于是一個(gè)中間層次的可移植性了.其實(shí),如果這樣不行的話也可以像JAVA那樣生成一定格式的"字節(jié)碼"文件,然后再進(jìn)行編譯連接.
如果可以將連接的一部分功能結(jié)合到操作系統(tǒng)內(nèi)部,實(shí)現(xiàn)動(dòng)態(tài)的連接,這樣就可以實(shí)現(xiàn)類(lèi)似動(dòng)態(tài)裝載的特性了.
但這個(gè)要實(shí)現(xiàn)的話就需要有一個(gè)大的投資方或者開(kāi)源社區(qū)自己的共同努力才能實(shí)現(xiàn)了.
所以現(xiàn)在這樣的想法還是空想吧.
不過(guò)我想,事物都是發(fā)展的,我們的C++當(dāng)然也不會(huì)例外的.我相信C++會(huì)在不久也實(shí)現(xiàn)動(dòng)態(tài)及完全的跨平臺(tái)的特性的.希望這一天不會(huì)太遠(yuǎn)!