Weiss的数据结构与算法分析(C++版)源码编译说明
生活随笔
收集整理的這篇文章主要介紹了
Weiss的数据结构与算法分析(C++版)源码编译说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近嘗試編譯Weiss的那本數據結構與算法分析(C++版)提供的源代碼時,遇到一些問題,特記錄如下:
考慮到該書提供的代碼是使用模板技術較多,這在提供簡潔代碼的同時,也給源碼的編譯帶來了一些問題。因而我們在編譯這些代碼時,一定要按照原書的說明來做些轉換。 拿郵電英文版(簡稱dsaa3e)本上的第31頁上的Figure 1.20 MemoryCell相關的代碼為例來說明一下。
我們先到作者的網站 http://users.cis.fiu.edu/~weiss/dsaa_c++3/code/ 下面下載Unix tar | gzip版本。 cd ~/下載/ wget?http://users.cis.fiu.edu/~weiss/dsaa_c++3/code/CodeUnix.tar.gz tar zxvf CodeUnix.tar.gz -C/home/taoyx/c++/dsaa3e/ cd /home/taoyx/c++/dsaa3e/
在該目錄下面找到我們將要測試的這幾個文件 MemoryCell.cp MemoryCell.h TestMemoryCell.cpp
閱讀相關代碼后,考慮到模板MemoryCell的聲明和實現是分離的,在引用時,我們按照dsaa3e上的附錄說明(P.567),需要添加如下的MemoryCellExpand.cpp
然后使用如下的命令來進行編譯: g++ -g MemoryCellExpand.cpp TestMemoryCell.cpp -o TestMemoryCell 這樣就生成可執行文件TestMemoryCell,下面我們在當前目錄運行下, ./TestMemoryCell
這里需要強調的一點是,模板文件僅是定義的模板,而非模板的實例,所以,我們對要用到的模塊要進行顯示聲明,再使用,否則編譯就會出錯。
考慮到該書提供的代碼是使用模板技術較多,這在提供簡潔代碼的同時,也給源碼的編譯帶來了一些問題。因而我們在編譯這些代碼時,一定要按照原書的說明來做些轉換。 拿郵電英文版(簡稱dsaa3e)本上的第31頁上的Figure 1.20 MemoryCell相關的代碼為例來說明一下。
我們先到作者的網站 http://users.cis.fiu.edu/~weiss/dsaa_c++3/code/ 下面下載Unix tar | gzip版本。 cd ~/下載/ wget?http://users.cis.fiu.edu/~weiss/dsaa_c++3/code/CodeUnix.tar.gz tar zxvf CodeUnix.tar.gz -C/home/taoyx/c++/dsaa3e/ cd /home/taoyx/c++/dsaa3e/
在該目錄下面找到我們將要測試的這幾個文件 MemoryCell.cp MemoryCell.h TestMemoryCell.cpp
閱讀相關代碼后,考慮到模板MemoryCell的聲明和實現是分離的,在引用時,我們按照dsaa3e上的附錄說明(P.567),需要添加如下的MemoryCellExpand.cpp
然后使用如下的命令來進行編譯: g++ -g MemoryCellExpand.cpp TestMemoryCell.cpp -o TestMemoryCell 這樣就生成可執行文件TestMemoryCell,下面我們在當前目錄運行下, ./TestMemoryCell
這里需要強調的一點是,模板文件僅是定義的模板,而非模板的實例,所以,我們對要用到的模塊要進行顯示聲明,再使用,否則編譯就會出錯。
總結
以上是生活随笔為你收集整理的Weiss的数据结构与算法分析(C++版)源码编译说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 12.04下玩转终端管理器
- 下一篇: vim学习笔记(四)