跳到主要內容

發表文章

目前顯示的是 12月, 2012的文章

使用 MinGW64 compiler 的程式大小

將之前在 Windows 8 系統中寫的一些小程式(包含執行檔) copy 到別的目錄,赫然發現在 Windows 8 所編譯出來的 hello.exe 檔案竟然有 6.4 MB 那麼大,比對之前在 Windows 7 以前的檔案,icuTest.exe 只有 50K, locale.exe 只有 1.1 MB。於是在不同的系統測試,以 hello.cpp 測試結果如下: 1. FreeBSB :7.3 K 2. MinGW32 on Windows XP:9.34 K 3. Visual Studio on Windows 8:68 K 4. Clang on Windows XP: 5.36 K 另外,拿 boost 程式測試 boost library 測試產生 Binary 檔的結果: 1. FreeBSB :未測試 2. MinGW32 on Windows XP:1.08 MB 3. Visual Studio on Windows 8:未測試 4. Clang on Windows XP: 471 KB ,但是在 XP 仍然不能 work 這樣的差別太大,使用 gcc -s 的參數,將 gcc 所編譯出來的執行檔,不含所有的 symbol table,測試結果如下: 1. FreeBSB :5 K 2. MinGW32 on Windows XP:4.68 K 3. MinGW64 on Windows 8:671 K 結論是:在 Windows 系統中要加入 -s 選項。 在 CodeBlocks 中有一個相同的選項,在 Settings -> Compiler 中,要記得將 Strip all symbols from binary(minimize size [-s] 這個項目選取,產生的 Binary 檔才不會太大。 順帶一提,使用 Visual Studio for Desktop 測試 hello.cpp 程式,利用 win32 的 template 時,會 include "stdafx.h" 這個 header,而 include <iostream> 必須在它之後 include 進來,否則找不到 <iostream> 這個 head...

Setting LLVM + Clang on CodeBlocks for Windows 8

因為工作的需要,一直希望能在 Windows OS 中能執行 LLVM, Clang 等,但是找了一些網路的文件,目前對於 Windows 系統的支援還不成熟,特別是 Windows 64 bits,在 LLVM project 中只 支援 32 bits 。又不想再依照之前 compile llvm 3.0 所寫的 llvm.txt 文件,在 Windows 8 64-bits 系統來 compile LLVM 的套件,在網路上找到 MinGW 的開發者已經 compile 的 binary 檔,下載 ran_linn 編譯了 Clang + LLVM for Windows 64 bits 的 binary 檔 ,在測試 Hello World 的時候,無法載入 MinGW 64 的 include 檔,在 Clang on Windows 的這篇問答 中,另一個開發者 rubenvb 回應這篇的問題,提供了他在 i686-w64-mingw32 編譯 Clang with LLVM 的 binary 檔 ,確實可以使用 Clang 及 Clang++ 來 compile C, C++ 的 source。另外, rubenvb 也有 compile 64 bits 的 LLVM 套件 ,不過,在下載的說明中他寫道:   I also provide 64-bit builds, but these are only useful for C. Compiling C++ to 64-bit object code will result in linker errors. 測試以後,他 compile 的 Clang 3.1 版本無法在 64-bits 的系統中正常 work。如果要測試LLVM 暫時要使用 rubenvb 所編譯 i686-w64-mingw32 的版本,或者到 FreeBSD or Ubuntu 的系統。 接著,在 CodeBlocks 中新增了一個 clang-llvm with mingw32 的 compile 環境,測試 boost library 是否可以使用? 結果是:可以 compile 成功,但是程式卻無法執行,雖然重新安裝 boost 32-bits 的版本,結果仍然一樣。所以,要使用 boost 仍然...

Visual Studio Express 2012 的版本

重新安裝 Windows 8 主要是因為原來 Windows 7 的 C: 空間不足,無法再安裝Visual Studio 2012(原來只 partition 50 GB),等了許久才知道學校已經有 Windows 8 的授權版,也很自然的裝了 VS Express 2012 for Windows 8 的版本。一直都是使用 CodeBlocks + MinGW 寫程式的環境,很自然的不會想用 VS 來 compile 程式;所以,安裝好 VS 之後就把它放在一邊,要等到再次 compile LLVM or 某些 open source 時再來用它。 今天,看到 MSDN 的 VC++中有一個 Parallel Programming 的 C++AMP 的 Classes,想試一下這個 Classes 的效果及是否需要特別的 hardware? Copy Overview 中的程式來測試,當然要拿 VS Express for Windows 8 出來,單獨對這個程式 compile,結果如這一篇文章所說: No more Win32 template on Express Edition at Visual C++ 2011? (ps: Visual C++ 2011 in Microsoft Visual Studio 11.0 就是 VS Express 2012),在 VS for Windows 8 中找不到 Win32 console application, 在 Answer 的第一篇中引述 Visual Studio Express 2012 for Windows Desktop ,第四段中間寫這:With this new Express edition, developers will be able to use C++, C#, or Visual Basic to create Windows desktop and console applications, 所以如果要使用內建的 Win32 Console Applications template 的話,需要安裝 for Desktop 的版本。  如果不想要再安裝 for Desktop 版本,可以使用 這一篇文章 所說的作法: 在 command line...

Eclipse IDE

之前都是寫 C, C++ 程式,不需要寫 java ,但是 programming in cloud computing 課程需要寫 java,所以不得不安裝 Eclipse 來幫助 william 寫程式,不然他的負荷很大。 由於懶得看 Eclipse 內 help 的說明,在 google 中搜尋了一下國內對於 Eclipse IDE 的教學,除了在 java world  [1] 有些說明可以參考外,但是還是不足我想要的內容,於是在國外的網站 [2] 有詳盡的 IDE 操作教學。 ---------------------------------------------------------- [1] http://www.javaworld.com.tw/jute/post/view?bid=10&id=40626 [2] http://www.vogella.de/articles/Eclipse/article.html

美媒點名「危險核廠」台灣全上榜!

美媒點名「危險核廠」 台灣全上榜! TVBS /  2011/03/26 引述這篇報導的內容: 台大公衛所教授詹長權:「幾乎南北這樣一夾,幾乎就佔了三分之二個台灣。」 原能會副主委謝得志:「原來的設計是,5公里以外的都不要疏散。」 到底要疏散多遠,原能會已經開始「自我總體檢」,否則,要是輻射外洩,台灣南北不過400公里,要怎麼逃才安全,著實是一大隱憂。 唉!早在基隆關時,對於台灣共有那麼多的核能電廠,還要建核四就憂心忡忡?一旦發生核能外洩,台灣人民往哪裡逃?如今,已經施工那麼多年,是否如當時預期所估算,急需要這麼的電源,否則會影響經濟的成長?且核四的施工品質,屢屢上報,拼裝的機組,商轉以後,更是危險。 時至今日,在日本 311 的海嘯擊毀核能電廠之後,再來討論這個議題,已經投入的時間、金額、人力、物力等,已經相當複雜,為時已晚矣。現在才來檢視各個核電廠的安危?只是亡羊補牢罷了。

What is Web services?

昨天(2012.05.17)聽「 那一年,我們談的個人資料保護 」時,與計中林組長談起 Web services ,還以為是 Web 的開發?於是 Google 了一下,在 Wikipedia's Web Services 的解釋是 is a method of communication between two electronic devices over the Web (Internet) 。是乎有些籠統,在 reference 中有一篇文章「 Putting the "web" into the web services 」中提到 Rest 系統,於再次 Google 一下,石頭閒語中有一篇 RESTful 的實做 。 http://www.petefreitag.com/item/431.cfm

Installing cwTeX in Windows 8

update: 2018.06.15 新版 cwTeX 是 5.1 版,安裝套件也更新 MikTeX 最新版本,但是卻無法使用 pdflatex 編譯舊版的 .ctx 檔案,從C:\Users\user\AppData\Local\MiKTeX\2.9\miktex\log\pdflatex.log 檔得知,FATAL pdflatex - No space left on device,吳老師也在 MiKteX project 中提出 bug report[1],專案主持人指引[2]文章產生無法使用 pdflatex 編譯的問題,起因於中文字編碼所造成,解決方法是改用 lualatex 來編譯。新版的 cwtex5 與 lualatex 編譯 .ctx 和 .tex 文件,不需要再輸入副檔名。 將 OS 改成 Windows 8,是重新安裝,不是從 Windows 7 升級,所有的軟體必須全部重新安裝,其中包括  MikTeX, Texmaker, Ghostscript, Gsview, 以及 cwTeX 這些撰寫 TeX/LaTeX 所需要的軟體。由於 Windows 8 是安裝 64 bits 的系統,除了 cwTeX 仍然是 32 bits 以外,其他的軟體皆安裝 64 bits 的版本,安裝的過程如下: 1. 下載 MikTeX , Texmaker , Ghostscript , Gsview 64 bits 的版本,安裝到系統中 依照 cwTeX 的手動安裝的說明 ,因為 cwTeX 是32 bits, 且 Windows 64 bits 的軟體是裝在 c:\Program Files, 32 bits 的軟體是安裝在 c:\Program Files (x86) 2. 下載 cwTeX cwtex34-minstall 的 zip 檔案,解壓縮到 c:\Program Files (x86) 目錄之下 3. 將 cwTeX 字型加入到 MikTeX 系統中:  3a) 搜尋 -> Setting -> Settings(Admin) -> Root, 點選 Add 將 c:\Program Files (x86)\cwtex 目錄加入 3b) 編輯 c:\Program Files...