LoginSignup
1
0

# Visual Studio 2022にPDCurcesを導入する

Posted at

cursesはUnix系システムでの端末制御ライブラリであり。テキストユーザインタフェース (TUI) アプリケーションを作成するのに使われる。

cursesはLinuxなどUNIX準拠の環境で動作するライブラリだが、UNIX以外のWindows環境用に同等の機能を持つPDCursesというライブラリが存在する。

今回はこのPDCursesを導入する方法について作業メモを残す。

環境

OS Windows10
Visual Studio 2022 Community

要点

先にこの作業の要点を記しておく。

やることは至って単純で

  1. PDCursesのソースコードを取得する。
  2. ビルドして.libファイルを作成する。
  3. 作成した.libを使えるようにプロジェクトの設定をする。

以上である。

3に関して言えばPDCursesに限った話ではなく、C/C++で外部ライブラリを使うときの一般的な話なので、ここではあまり触れない。

(C/C++で外部ライブラリを使うとか、読み込むというワードで検索をすればいくらでもやり方は出てくるはずなので)

キモとなるのは2でPDCursesのソースコードをビルドして、無事に.libファイルが作れるかどうかである。

では順番に見ていくとする。

1. PDCursesのソースコードを取得する。

GitHub - wmcbrine/PDCurses: PDCurses - a curses library for environments that don't fit the termcap/terminfo model.

ここからソースコードを落とし、適当なフォルダに解凍しておく。
ひとまずD:\tmp\PDCurses-masterに解凍したものとして話を進める。

2. ビルドして.libファイルを作る

前置き

PDCurses for Windows console | PDCurses
ここにWindows向けのビルドに関する情報が書かれている。

要約すると、Visual Studio用のMakefile(ビルドの設定が書かれたもの)があるので、nmake.exeを使ってビルドして下さいね ということ。

nmake.exeとは Visual Studio に含まれているコマンドライン ツールで、Visual Studioをインストールしていれば入っているはず。

またVisual Studioをインストールしていれば、nmake.exeがすぐに使えるよう、もろもろの設定が済んでいる開発者用プロンプトツールも使えるはずである。

スタートメニュで「x64」と打ち込むと
x64 Native Tools Command Prompt for VS 2022 というツールが見つかるはず、これが開発者用プロンプトツールと呼んでいるものである。

見つかったら起動する。
見つからなかったら、泣く。

またこのツールはいくつか種類がある。
この方がまとめてくれていたのでリンクを張らせてもらう。一読するべし。
Visual Studio の Cross Tools / Native Toolsって何? - 物理の駅 Physics station by 現役研究者

ビルド

ビルドする前に、.libを出力するフォルダを作っておく。
今回は以下のように出力用フォルダを作成した。

D
 ┗ tmp
   ┗ PDCurses-master
     ┗ out
       ┣ x64
       ┣ x64_debug
       ┣ x86
       ┗ x86_debug

準備ができたらまずはx64用の.libを作る。
ビルドすると現在いる場所に.libが作られるようなので、予めout\x64フォルダに移動しておく。

続いて以下のコマンドを実行する。
実行するとout\x64pdcurses.libファイルが出来上がるはずだ。
(大量の.objファイルもでてくる)

REM 環境変数にソースコードのあるフォルダパスを設定
set PDCURSES_SRCDIR=D:\tmp\PDCurses-master

REM nmake実行
nmake -f D:\tmp\PDCurses-master\wincon\Makefile.vc

これでひとまず.libが出来上がるはず、できなければ、泣く。
あとは必要に応じてDebug版、x86版を用意する。

x64デバッグ版のビルドコマンド

x64 Native Tools Command Prompt for VS 2022を起動し以下のコマンドを実行

REM 出力先に移動
cd D:\tmp\PDCurses-master\out\x64_debug

REM 環境変数にソースコードのあるフォルダパスを設定
set PDCURSES_SRCDIR=D:\tmp\PDCurses-master

REM nmake実行
nmake -f D:\tmp\PDCurses-master\wincon\Makefile.vc DEBUG=Y

x86版のビルドコマンド

x86版のビルドにはx64_x86 Cross Tools Command Prompt for VS 2022を使う。
起動したら以下のコマンドを実行する。

REM 環境変数にソースコードのあるフォルダパスを設定
set PDCURSES_SRCDIR=D:\tmp\PDCurses-master

REM x86 Release版
cd D:\tmp\PDCurses-master\out\x86
nmake -f D:\tmp\PDCurses-master\wincon\Makefile.vc

REM x86 Debug版
cd D:\tmp\PDCurses-master\out\x86_debug
nmake -f D:\tmp\PDCurses-master\wincon\Makefile.vc DEBUG=Y

Visual Studioのプロジェクト設定

前提としてPDCursesのソースコードや、.libは以下のフォルダに配置されているとして話を進める。

D
 ┗ tmp
   ┗ PDCurses-master ... curses.hとかがあるフォルダ
     ┗ out ... 各種libファイルがあるフォルダ
       ┣ x64
       ┣ x64_debug
       ┣ x86
       ┗ x86_debug

Visual Studioで適当に空のプロジェクトを作成したら、プロジェクト設定を開く。

ビルド構成は、Debut/Releaseとx86/x64で通りあるが、ほぼ同じなので
構成 Debug、プラットフォームx64の場合についてのみ記す。

  1. C/C++ > 追加のインクルードディレクトリ に D:\tmp\PDCurses-masterを追加
  2. リンカー > 追加のライブラリディレクトリに D:\tmp\PDCurses-master\out\x64_debug を追加
  3. リンカー > 入力 > 追加の依存ファイルに pdcurses.libを追加

以上。
これだけ書いておけば、忘れても思い出せるはずと信じる。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0