cygwinとは、要はwindows環境でUNIXを使えるようにするものです(無料)。もう少し突っ込めば、GNUのツール群をWindowsに移植し、それを用いてソースをコンパイルし直せばサーバプログラムなどもWindowsで動くというココロです。インストールは[[本家:http://www.cygwin.com]]のページからsetup.exeというのを拾ってくれば、ネットワーク越しに色々設定してくれるのでラクです *link [#b96b8798] -[[Cygwin Information and Installation:http://www.cygwin.com/]] 公式 -[[ck - terminal emulator:http://www.geocities.jp/cygwin_ck/]] 便利な端末 -[[cygwinを使う:http://www.mars.dti.ne.jp/~sohda/cygwin/]] -[[Compile ! (^.^)v:http://www.netlaputa.ne.jp/~kose/Software/compile/index.html]] ちょっと古め **NYAOS [#eb5c40bf] cygwinとは関係ないが、似た効能がある。必要最小限な手軽さが良い。 -[[NYAOS Support Page:http://www.nyaos.org/index_ja.html]] -[[NYAOSを使おう!:http://childs.squares.net/program/text04.html]] *CDイメージ吸い出し [#p4366666] 大抵はisoなる拡張子がついているCDイメージを作りたいことがある。中にはライティングソフトにその機能がついている場合もあるが、cygwinで作成可能。 dd if=/dev/scd1 of=image.iso でOK。scd1の数字は環境によって変化するので要確認。 以下を参考にした。 -[[/dev ファイルシステムと /proc ファイルシステム:http://www.sixnine.net/cygwin/cygwin-doc/devices.html]] *X [#g62cb8e4] cygwinでXサーバを動かすことも可能です(感動モノです)。[[@IT:http://www.atmarkit.co.jp]]の「真ゼロ円でできるXサーバ」 が参考になります。 -[[Cygwin/XFree86最新事情と日本語化:http://www.atmarkit.co.jp/flinux/special/cygwin2/cygwin01a.html]] -[[Cygwin/XFree86でKDE & GNOME:http://www.atmarkit.co.jp/flinux/special/cygwin2/cygwin02a.html]] とはいえこのあたりは変化が激しいので、既存の解説文書をアテにしすぎてもいけません。 *端末 [#m6d69a4d] デフォルトではwindows付属のコマンドプロンプトが端末となるが、機能やフォントで何かと制限があって使い勝手が悪い。対策としては -ローカルにSSHサーバ構築してお好みの端末でlogin([[PuTTYを使ってターミナルを使いやすくする。:http://bellbind.net/windows/putty.html]]) -[[CygTerm:http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/]] -[[ck - terminal emulator:http://www.geocities.jp/cygwin_ck/]] などがあるようだ。現在のところ、ck(cko)を用いて以下のリンク先を持つショートカットを作るのが自分的に都合が良い。 D:\cygwin\bin\cko.exe -fn "好きなフォント名" -fs 12 -e bash --login *その他のメモ [#ob165211] 古めなので、ひょっとしたらもう役に立たないかもしれません。 **ビープ音 [#fc4c4424] Bash shellのビープ音は、[[ウィンドウズ処方箋:http://www.winfaq.jp/]]の中の[[ビープ音をやめたいのですが:http://homepage2.nifty.com/winfaq/wxp/hints.html#977]]を参考にして無効にできました。 **fluxbox [#o442b7c4] Xが動くので、ウィンドウマネージャも選ぶことができます。cygwin用のパッケージを持つものもあるようです。 私は[[fluxbox:http://www.fluxbox.org]]を使っています。インストールの際は、cygwinのsh.exeがgetoptsを解釈せずmakeがコケるので、 /bin/sh.exeを消して同名で/bin/bash.exeへリンクを張りなおしたらうまくいきました。 **lv [#k596a1d5] 上に挙げた@ITによる解説で日本語化に成功したため、ページャも日本語化しようと試み[[lv:http://www.ff.iij4u.or.jp/~nrt/lv/]]をインストールしました。 makeはすんなり通りましたが、実行するとtermcapに「ktermなんぞ知らん」と怒られたので、 [[Cygwinとおたわむれ:http://www.netlaputa.ne.jp/~kuno/cygwinmain.html]]というページを参考にして /etc/termcap に以下の記述を加えたらうまくいきました。 vk|kterm|kterm kanji terminal emurator (X window system):\ hs:es:ts=\E[?e\E[?%i%dT:fs=\E[?F:ds=\E[?H:tc=xterm: **LAPACK [#oe278017] 線型代数計算のライブラリとして高名な[[netlib:http://www.netlib.org]]のLAPACKですが、cygwinでも使用可能です。インストールにあたって特別な操作も殆ど必要ありません。ソースを持ってきて展開し、LAPACKディレクトリに移った後、以下の様にします。 $ cp INSTALL/make.inc.LINUX ./make.inc $ make blaslib $ make lapacklib するとカレントディレクトリにライブラリができあがるので、それを適当な場所にコピーします。 $ cp ./blas_LINUX.a /usr/lib/libblas.a $ cp ./lapack_LINUX.a /usr/lib/liblapack.a これで使用可能となります。私はC++から使用することが多いのですが、externで宣言する際に関数名の後にアンダースコアをつけなくてはいけません。例えば以下の様にします。 // Ax = b // // A = ( 3 2 -4) b = ( -5 ) // ( 1 -7 2) ( -7 ) // (-6 5 8) ( 28 ) // // solution: x = ( 1 ) // ( 2 ) // ( 3 ) #include<iostream> using namespace std; extern "C" { int dgesv_( int *n, int *nrhs, double *a, int *lda, int *ipiv, double *b, int *ldb, int *info); } int main(void){ int n = 3; int nrhs = 1; double A[9]; int lda = n; int ipiv[3]; double b[3]; int ldb = n; int info; A[0] = 3; A[3] = 2; A[6] = -4; A[1] = 1; A[4] = -7; A[7] = 2; A[2] = -6; A[5] = 5; A[8] = 8; b[0] = -5; b[1] = -7; b[2] = 28; dgesv_( &n, &nrhs, A, &lda, ipiv, b, &ldb, &info); cout << b[0] << endl; cout << b[1] << endl; cout << b[2] << endl; return 0; } コンパイルの際のコマンドラインは以下のとおり。ライブラリへのパスが通ってないなら適宜Lオプションを加えます。 g++ hoge.cpp -llapack -lblas -lg2c -lm