最近要用3D-ICE仿真微流道散熱,3D-ICE是linux下基于c編寫的庫,沒怎么用過linux研铆,搞了3天才成功比勉,記錄一下失敗的過程以及成功的過程劳较。
嘗試的過程
先說失敗的嘗試
1.首先要有一個linux系統(tǒng),最簡單的浩聋,去win10應用商店里下載了一個ubuntu观蜗,很小巧方便,按照3D-ICE User Guide搞了一天失敗赡勘,主要熟悉了一下linux系統(tǒng)的基本使用嫂便,一些linux基礎知識和安裝3D-ICE的過程,根據(jù)中間提示的error修改了源代碼闸与,各種include失敗毙替,結論是可能因為版本問題。
2.所謂的版本問題践樱,因為要用到bison厂画,flex和gcc,之前都是使用ubuntu18拷邢,然后使用sudo apt install命令下載這三個東西袱院,但是版本都比10年前的高(3D-ICE是10多年前的),因為其中一些規(guī)則可能變化,所以編譯失敗忽洛。userguide也說明了這三個東西的版本腻惠。
3.又試了一下ubuntu16.04,版本還是高(現(xiàn)在是2020年3月欲虚,win10應用商店里只有ubuntu16和18了)集灌。嘗試方向改為在高版本ubuntu上安裝這些低版本的工具,中間各種嘗試复哆,挑幾個印象深的寫欣喧。安裝gcc4.1.2,非常遠古的版本梯找,ubuntu18已經(jīng)是gcc7了唆阿,使用sudo apt install gcc-4.8可以安裝4.8 版本,但是盡可能版本再低一點锈锤,嘗試了編譯gcc-4.1.2的源碼的方法驯鳖,編譯失敗,糾錯未果牙咏,可能還是自帶的高版本gcc甚至編譯不了之前的gcc臼隔?瞎猜的,主要沒有過多時間和精力去研究這個問題妄壶。又嘗試了安裝.deb的方法摔握,根據(jù)我了解的,類似于windows的安裝文件包丁寄,比較簡單氨淌,安裝上了,切換方式 apt update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 100, 其中100表示優(yōu)先級(切換方法都能查到)伊磺,查詢版本使用gcc -v也顯示是4.1盛正,但是問題是不能生成可執(zhí)行文件,找不到-lgcc_s?查了解決方法屑埋,有說添加鏈之類的并不能解決豪筝,遂放棄。但是問題是用gcc4.8還是會報錯摘能,錯誤是啥我忘了续崖,心煩,放棄团搞。大部分時間放在安裝gcc4.1.2上严望,其他bison跟flex的低版本安裝好像bison成功了,flex可能也是因為gcc不行所以沒成功逻恐?
4.考慮到去學習一些知識的話時間太緊像吻,于是想到直接安裝低版本的ubuntu峻黍,其自帶的便是低版本。之前被應用商店的16和18限制思路拨匆,直接下載ubuntu10的鏡像姆涩,然后用vmware構建了環(huán)境,8太古老了惭每,支持不太好阵面,12還未嘗試。
總之最后用ubuntu10.04成功了洪鸭。
成功安裝過程
1.Vmware+Ubuntu10.?? 直接下載就行,然后再Vmware里新建虛擬機仑扑,裝上這個ubuntu览爵,過程網(wǎng)上都有,不復雜镇饮。注意要設置一個共享文件夾蜓竹,以便文件交換,方法都可以查到储藐。
2.更新源俱济,老版本的源都不維護了,將/etc/apt/sources.list里的源都更換钙勃,更換成啥也能搜到蛛碌,搜舊版本ubuntu更新源,更新完之后辖源,sudo apt-get update蔚携。然后直接sudo apt-install 命令安裝上述的gcc ,bison克饶,flex酝蜒。bison與flex版本是與userguide一致的,gcc4.4高一些矾湃,也可以用亡脑。
3.接下來按照userguide說的來就好,注意也有一些坑邀跃。首先SuperLU里編譯霉咨,按照readme里說的,把define一行注釋掉坞嘀,blaslib=啥那一行給更換掉躯护。注意更換內容應該是libblas.a的,而不是platform啥的丽涩,不然后邊找不到這個名字棺滞。然后make blaslib裁蚁。接著要make superlulib,注意這時候要搞一個Codes文件夾继准,把SuperLU那個文件夾放在里邊枉证,不然也會報錯找不到這個路徑。SuperLU就搞好了移必。
4.再用戶目錄下建一個3d-ice的文件夾室谚,把下載的3dice的文件和SuperLU文件夾放在里邊,要把SuperLU/src里的文件復制到3d-ice/Include中崔泵,可能是庫包含沒搞好秒赤,暴力解決。更改makedef文件憎瘸,SLUMAIN那里3dice之間加連字符3d-ice入篮,SLULIBS要選擇上邊一個,注釋掉下邊那個/usr的幌甘。然后make即可潮售。
以上有些名字不是很嚴謹,靠想象記憶寫的锅风,版本對了之后問題都是挺容易根據(jù)報錯解決的酥诽。
主要是自己經(jīng)驗知識不足,可能以上方法也有點笨皱埠,時間有限肮帐,先用起來再說。
更新:ubuntu12也可以边器,gcc4.6??