環境パス設定。

本日の部活であった出来事。

 

開発環境

・OS:Windows8(64bit)

キーボード:JIS配列

コンパイラBorland C++ Compiler 5.5

・エディタ:Tera Pad

 

部員T「C++でグラフィック処理したいんだけど、どうすれば出来る?」

俺「***.rcファイルで管理してwindows.h使うか、DxLib.h使うかかな。弄ってみた感じは後者」の方が簡単かな」

 

〜数分後〜

T「大体サイトと同じようにやったはずなんだけど何かエラー出とる......」

 

PC交代して作業スタート

まずソースコード

#include <stdio.h>

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){

    if(DxLib_Init() == -1)

         return -1;

    else

        MessageBox( NULL, "DxLib初期化完了", "Debug", MB_OK);

    return 0;

}

ソース自体は改変してあるものの

・初期化に失敗したら強制終了

・初期化に成功したらメッセージボックスを表示して終了

といった仕様で特に問題はない。

 

続いてコンパイル

GUIアプリケーションだから -W

とりあえず警告は一旦無視するため -w-

実行。

 

bcc32 -W -w- dx_sample.cpp↵

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

エラー E2209 I:\pcclub\T\prog\dx_sample.cpp 2: インクルードファイル 'DxLib.h' をオープンできない
エラー E2141 I:\pcclub\T\prog\dx_sample.cpp 4: 宣言の構文エラー
*** 2 errors in Compile ***

 

** error 1 ** deleting Debug\dx_sample.obj

 

Make End !!

 

なるほど。

どうやらヘッダファイルのインクルードに失敗している模様。

bcc32.cfgを確認すると

-I"I:\pcclub\T\borland\bcc\bin\Include"
-L"I:\pcclub\T\borland\bcc\bin\Lib; I:\pcclub\T\borland\bcc\bin\Lib\PSDK"

 

一見、問題が有るようには見えない。

そこで環境パス設定について調べてみた。

 

すると、

「""で囲んであればフォルダ名に空白を含んでも問題無い。」

これが実は問題だったのだ。

どうやら2行目の後半が

「I」ドライブではなく、

「 I」ドライブ(Iの前に空白有り)として読み込まれていたようだ。

 

というわけでbcc32.cfgを

-I"I:\pcclub\T\borland\bcc\bin\Include"
-L"I:\pcclub\T\borland\bcc\bin\Lib; I:\pcclub\T\borland\bcc\bin\Lib\PSDK"

から
-I"I:\pcclub\T\borland\bcc\bin\Include"

-L"I:\pcclub\T\borland\bcc\bin\Lib;I:\pcclub\T\borland\bcc\bin\Lib\PSDK"

に書き換えて再コンパイルしたところ無事解決。

 

基本的に俺はMacで開発しているが、覚えておいたほうが(というよりはいつでも思い出せるようにしておいた方が)良いかなぁ、と思い投稿した。

 

2014/11/11 Tue.