ビルドできない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
月水
記事: 1
登録日時: 5年前

ビルドできない

#1

投稿記事 by 月水 » 5年前

新C言語ゲームプログラミングで1.1章のダウンロードをしたのですがデバッグなしかどうかにもかかわらずビルドエラーが発生し、最後に成功したビルドを実行してもC¥Users¥ユーザー名¥Desktop¥GameProg¥×64¥Debug¥GameProg.exeが開始できない、存在しないファイルなどと表示されます
C言語を始めたばかりでよくわからず、申し訳ありません。

アバター
あたっしゅ
記事: 663
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: ビルドできない

#2

投稿記事 by あたっしゅ » 5年前

ビルドエラーが出っぱなしで、一度もビルドに成功していないために、
「最後に成功したビルド」がないから、実行できないのでは ?

>デバッグなしかどうかにもかかわらずビルドエラーが発生し、

ビルドエラーが出るのに、デバッグなしかどうかは、関係ありません。
include ファイルや Lib ファイルのパスの設定は、ちゃんとしてありますか ?
ちゃんとダウンロードしたままのファイルですか ?
うっかり、余分な文字を入力してしまったりしていませんか ?
また、Visual Studio(ですよね)のバーションはいくつですか ?
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: ビルドできない

#3

投稿記事 by dic » 5年前

https://dixq.net/g/h_01.html は設定されましたか?
現在の動かないソースコードをここの掲示板に張り付けてください。

Math

Re: ビルドできない

#4

投稿記事 by Math » 5年前

http://www2.koyoen.birdview.co.jp/~abcx ... -p-08-.PNG

私の環境では問題なく実行できたので 過去に何度か答えてますが 可能性が高いのは展開(解凍)に失敗していることです。

時間の余裕を持ってダウンロードから展開(解凍)をやり直すとなおるでしょう。

Math

Re: ビルドできない

#5

投稿記事 by Math » 5年前

これを コマンドプロンプトで動かすと軽快にうごきますね。

まず 汎用性があるように C ドライブ直下にDXライブラリーをおきます。

全ファイル
http://www2.koyoen.birdview.co.jp/~abcx ... 7-aaa-.PNG


1.7章を お借り して
https://dixq.net/g/01_07.html

main.cpp

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定

        int x = 0;
        int Handle;     // 画像格納用ハンドル
        Handle = LoadGraph( "画像/キャラクタ01.png" ); // 画像のロード

        // while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){

                DrawGraph( x, 100, Handle, TRUE ); //画像の描画
                x = x + 2; // xを2増やす

        }
        
        DxLib_End(); // DXライブラリ終了処理
        return 0;
} 
メークファイル g.mak

コード:

TARGETNAME=main

C_FLAGS=/c /TP /EHsc /D "_MBCS" /MT  /Ic:\dxlib /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /W3 

LINK_FLAGS=/SUBSYSTEM:WINDOWS /LIBPATH:c:\dxlib "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" 

ALL:
	cl $(C_FLAGS) $(TARGETNAME).cpp 
	link /out:$(TARGETNAME).exe $(LINK_FLAGS) $(TARGETNAME).obj 
	$(TARGETNAME).exe

バッチ b.bat

コード:

nmake -f g.mak
コンパイル
http://www2.koyoen.birdview.co.jp/~abcx ... 7-ccc-.PNG

実行
http://www2.koyoen.birdview.co.jp/~abcx ... 7-bbb-.PNG

Math

Re: ビルドできない

#6

投稿記事 by Math » 5年前

上記のメークファイルは長い期間使ってますが VS2008,VS2013,VS2015,vs2017とVS2008以降全て
のVisual Studio で同じまま変更なく使えます!

VS2008以前のプロジェクトファイルはメークファイル形式でしたね。

Math

Re: ビルドできない

#7

投稿記事 by Math » 5年前

これは メークファイル を書き換えて コンソール・プログラムにする事ができます。

メークファイル

コード:

TARGETNAME=main

C_FLAGS=/c /TP /EHsc /D "_MBCS" /MT  /Ic:\dxlib /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /W3 

LINK_FLAGS=/SUBSYSTEM:CONSOLE /LIBPATH:c:\dxlib "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" 

ALL:
	cl $(C_FLAGS) $(TARGETNAME).cpp 
	link /out:$(TARGETNAME).exe $(LINK_FLAGS) $(TARGETNAME).obj 
	$(TARGETNAME).exe

ソース

コード:

#include "DxLib.h"

int main(){

        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定

        int x = 0;
        int Handle;     // 画像格納用ハンドル
        Handle = LoadGraph( "画像/キャラクタ01.png" ); // 画像のロード

        // while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){

                DrawGraph( x, 100, Handle, TRUE ); //画像の描画
                x = x + 2; // xを2増やす

        }
        
        DxLib_End(); // DXライブラリ終了処理
        return 0;
} 
http://www2.koyoen.birdview.co.jp/~abcx ... 7-yyy-.PNG

http://www2.koyoen.birdview.co.jp/~abcx ... 7-xxx-.PNG

Math

Re: ビルドできない

#8

投稿記事 by Math » 5年前

*** printf デバッグ *** ができますね。

コード:

#include "DxLib.h"

int main(){

        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定

printf("\n\n起動に成功しました\n\n");

        int x = 0;
        int Handle;     // 画像格納用ハンドル

        Handle = LoadGraph( "画像/キャラクタ01.png" ); // 画像のロード

printf("*** printf デバッグ *** \n\n");
printf("画像格納用ハンドルは%d \n\n",Handle );



        // while(裏画面を表画面に反映, メッセージ処理, 画面クリア)
        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){

                DrawGraph( x, 100, Handle, TRUE ); //画像の描画
                x = x + 2; // xを2増やす

        }
        
        DxLib_End(); // DXライブラリ終了処理
        return 0;
} 


http://www2.koyoen.birdview.co.jp/~abcx ... 7-zzz-.PNG

Math

Re: ビルドできない

#9

投稿記事 by Math » 5年前

過去ログで私が答えたなかでこいうのが多い。

viewtopic.php?f=3&t=20136&p=151783&hili ... 2A#p151783

Math

Re: ビルドできない

#10

投稿記事 by Math » 5年前

過去ログで私が答えたなかでこいうのもありますね。

viewtopic.php?f=3&t=20366&p=151700&hili ... 2A#p151700

Math

Re: ビルドできない

#11

投稿記事 by Math » 5年前

過去ログで私が答えたなかでこいうのもありますね

viewtopic.php?f=3&t=20325

同じ原因、解凍不良だよね。解凍は余裕を持って時間をかけてやる事だよね。
初心者のかたは あわてず 落ち着いてやり直すこと。
(全般にそういう事がいえます)

Math

Re: ビルドできない

#12

投稿記事 by Math » 5年前

DXライブラリーが Ver 3.20a にアップデートされていたので試してみました。

DXライブラリー
https://dxlib.xsrv.jp/dxdload.html

コード:

**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.6
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community>cd C:\19\download19\dxlib\DxLib_VC

C:\19\download19\dxlib\DxLib_VC>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 7813-6100 です

 C:\19\download19\dxlib\DxLib_VC のディレクトリ

2019/02/07  13:50    <DIR>          .
2019/02/07  13:50    <DIR>          ..
2019/02/07  13:49             7,338 DxLib.txt
2019/02/07  13:49    <DIR>          help
2019/02/07  13:49    <DIR>          Tool
2019/02/07  13:50    <DIR>          サンプルプログラム実行用フォルダ
2019/02/07  13:50    <DIR>          プロジェクトに追加すべきファイル_VC用
2019/02/07  13:49               122 作者ホームページ.url
               2 個のファイル               7,460 バイト
               6 個のディレクトリ  180,431,970,304 バイトの空き領域

C:\19\download19\dxlib\DxLib_VC>
https://dixq.net/g/
からダウンロードし直したGameProg::

GameProg

コード:

C:\19\download19\dxlib\DxLib_VC>cd C:\19\Y\02\07\GameProg

C:\19\Y\02\07\GameProg>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 7813-6100 です

 C:\19\Y\02\07\GameProg のディレクトリ

2019/02/07  15:22    <DIR>          .
2019/02/07  15:22    <DIR>          ..
2019/02/07  14:25    <DIR>          DxLib
2019/02/07  14:21                 0 dxlib_v3.20a---入れ替え---.txt
2019/02/07  14:11             1,429 GameProg.sln
2019/02/07  14:11             6,902 GameProg.vcxproj
2019/02/07  14:11             1,000 GameProg.vcxproj.filters
2019/02/07  15:09               165 GameProg.vcxproj.user
2019/02/07  15:31            10,748 Log.txt
2019/02/07  15:21             1,241 test.cpp
2019/02/07  15:09    <DIR>          x64
2019/02/07  14:20    <DIR>          サウンド
2019/02/07  14:20    <DIR>          画像
               7 個のファイル              21,485 バイト
               6 個のディレクトリ  180,431,585,280 バイトの空き領域

C:\19\Y\02\07\GameProg>
GameProg の DxLib ディレクトリ のバージョンは Ver 3.18e だったので DxLib_VC の プロジェクトに追加すべきファイル_VC用 ディレクトリ の内容と入れ替えてテスト

コード:

#include "DxLib.h"
#include "Math.h"

// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
	AllocConsole();
	FILE* out = 0; freopen_s(&out, "CON", "w", stdout);
	FILE* in = 0; freopen_s(&in, "CON", "r", stdin);


	printf("Hello World!\n");

	printf("%16.15f\n", 3.141592653589793);


	int x, y;
	double PI = 3.141592653589793;		// 産医師異国に向こう産後厄なく産・
	ChangeWindowMode(TRUE);		// ウィンドウモードに設定
	if (DxLib_Init() == -1)		// DXライブラリ初期化処理
	{
		return -1;			// エラーが起きたら直ちに終了
	}

	for (x = 0; x < 640; x++) DrawPixel(x, 240, GetColor(0, 0, 255)); // 点を打つ
	for (y = 0; y < 480; y++) DrawPixel(320, y, GetColor(0, 255, 0)); // 点を打つ

	printf("正弦波・・・\n");

	for (x = 0; x < 640; x++) DrawPixel(x, (int)220 * sin((float)x*(2.0*PI / 320.0)) + 240, GetColor(255, 255, 128));

	printf("余弦波・・・\n");

	for (int x = 0; x < 640; x++) DrawPixel(x, (int)220 * cos((float)x*(2.0*PI / 320.0)) + 240, GetColor(255, 128, 255));


	WaitKey();				// キー入力待ち

	DxLib_End();				// DXライブラリ使用の終了処理


	//コンソール解放
	fclose(out); fclose(in); FreeConsole();



	return 0;				// ソフトの終了 
}
正常に実行できました。
http://www2.koyoen.birdview.co.jp/~abcx ... ame-a-.PNG

返信

“C言語何でも質問掲示板” へ戻る