2010年11月14日日曜日

ckw.exe最新版のビルド

Windowsのコマンドプロンプト(cmd.exe)の代替となるckw.exeについて、NYAOS(Windows用のシェル環境・ツール)の開発者が詳細にまとめてくれていたのでメモ。 複雑なfork状況となっていたようだが、現在の最新版はgithubにあるものらしい。 ソースからビルドする場合、Visual C++コンパイラ・ライブラリ(Windows SDK)が必要なので、持っていない場合はExpress版をインストールする。Visual Studio2010の方はビルド対応状況がまだ弱いので、現在の所お勧めなのはVisual Studio 2008 Express一式が揃った以下のisoファイル。このisoファイルをMagicDiskなどの仮想DVDドライブや書き込んだDVD-Rから読みこみインストーラを実行する。 ckwではソリューションファイル(拡張子sln)も用意されているので、Visual Studio IDEからビルドしても良いのだが、ckwぐらいの小規模コンソールアプリならシェル(コマンドプロンプト)からmake/nmakeする方が楽だと思う。 それで、私はnmakeでビルドしてみたのだが、次のようなエラーが出たので一応メモしておく。
option.obj : error LNK2019: 未解決の外部シンボル __imp__PathIsDirectoryA@4 が関数 "bool __cdecl getconfigfile(char const *,char *,char *,int)" (?getconfigfile@@YA_NPBDPAD1H@Z) で参照されました。
...
PathIsDirectoryという関数などが定義されたライブラリがリンクされていない。これをググって調べると、 というMSDN情報から、これはShlwapi.dllというライブラリファイルによって提供されていることが分かる。ということで、Makefileのライブラリ指定(変数ULIB)に以下のようにShlwapi.libを追加してやればよい。
--- Makefile
+ULIB = user32.lib gdi32.lib shell32.lib  Shlwapi.lib 
これで無事ビルドすることができた。

0 コメント:

コメントを投稿