【最大10000ポイント】当たる!!質問投稿キャンペーン!

Visual Studio 2008を使用しています。
やりたいことは、シミュレーション内で扱っている、既存のC++コードを編集し(今回はまだ編集してない)、デバックすることで自分の考えたプログラムをシミュレーション上で動かすことです。
C++ファイルやヘッダファイルなどがあり、当然ソースコードの書き換えはしていないので、ソースプログラムにおけるエラーはありません。

以下、線で囲った部分は実際に行った動作をなるべく詳細に書いたつもりです。
最終的な結果は、この線で囲った部分の後に書きますので、読み飛ばしてもらっても平気かもしれません。
________________________________________
実行してみた操作方法は、このシミュレーションの開発者団体から頂いた資料(先輩のであり、1年ほど前の)を参考に
[既存のコードからプロジェクトを作成] →Visual C++選択 →「外部のビルドシステムを使用する」を選択。
「ビルドコマンドライン」「リブルドコマンドライン」「クリーンコマンドライン」「出力(デバック用)」に資料に書いてあったものを入力。
(今、別PCからの書き込みなので、入力したものを正確にお伝えすることはできませんが、必要とあれば後ほど補足させていただきます。 前者3項目にはnmake -f XXXX このようなものを入力しました。 出力には、シュミレーションのexeまでの絶対パス)
以上の操作を完了させ、visual studio画面のソリューションエクスプローラーにプロジェクトとC++ファイルなどを読み込むことができました。
続いて、また資料通り、新しくできたプロジェクトのプロパティから必要な値を入力しました。
これについても必要であれば、後程記述します。
ここまでで作業は完了です。
ビルドしたり、デバックしたりしましたが、エラーが発生し、手詰まり状態にあっています。
ここまでの作業は同じ作業を過去にしたことがある同研究室の先輩方複数人に見てもらったことと、何度も失敗したのでこの作業を複数回繰り返したことから、入力ミス(例えば半角スペースやディレクトリの参照ミス)などは無いかと思われます。
_________________________________________

肝心のエラーコードですが、
「コンパイラの一時的な中間ファイルを作成するための領域が不足しています。」

エラーコードを参照し以下のサイトを発見しました。
http://msdn.microsoft.com/ja-jp/library/bb385201 …

「TMP 環境変数によって指定されるディレクトリから古い MSIL ファイルをすべて削除します。 これらのファイルは、_CL_hhhhhhhh.ss という形式になります」
こう書いてありましたので、TMP 環境変数によって指定されるディレクトリからCL_hhhhhhhh.ssを探してみましたが、このようなファイルはありませんでした。
念のために、このディレクトリ内の全てのファイル・フォルダを削除してみましたが、結果は変わりませんでした。(正確には切り取ってフラッシュメモリに移動させた。)
Cドライブの空き容量も見ましたが、半分も使用領域が残っており、数値的にも十分なほどの空きスペースがあるはずです。

ここまでが現状ですが、この現状を打破する知識をお持ちの方がいましたら、アドバイスをよろしくお願いします。
ここまで読んでくださった方、ありがとうございました。

A 回答 (2件)

テンポラリ領域については回答されているので…



>TMP 環境変数によって指定されるディレクトリからCL_hhhhhhhh.ssを探してみましたが、このようなファイルはありませんでした。

そのままの名前では存在しない…ということは理解されていますよね?
「h はランダムな 16 進数を、ss は IL ファイルの種類を表します。」と書かれていますし。

ちなみに、「TMP 環境変数によって指定されるディレクトリ」の環境変数は2種類あったりしますが、そちらは問題ありませんか?
# システム環境変数と個人用環境変数。通常であれば個人用の方が優先になるかと。

使用している環境でクォータなどにより制限されている…とかそういうことはないですか?

>「ビルドコマンドライン」「リブルドコマンドライン」「クリーンコマンドライン」「出力(デバック用)」に資料に書いてあったものを入力。

で環境変数を再設定している…とかそういったことはありませんか?
    • good
    • 0

TMP環境変数によって指定されるディレクトリがの絶対パス名が長かったり、パス名の中に半角スペースが入っていたりすると、古いツール類や、古い開発システムが、TMP領域に一時ファイルを作成するのに失敗する事があります。



例えば、

TMP=C:\Documents and Settings\ユーザー名\Local Settings\Temp

になっていると、Windows98時代の古い某ソフトは「一時ファイル"C:\Documents"が作成できません」で停止します。

また、ある種のソフトでは、ディレクトリの絶対パスの長さが「64バイト以内」と想定している為、TMPフォルダのアクセスに失敗します。

Cドライブのルートフォルダに「TEMP」フォルダを作成し、WindowsのTMP環境変数の設定を

TMP=C:\TEMP

に変えてから再起動し、実行してみましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QLNK2019: 未解決の外部シンボルのエラーが出る

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自キャラのデータ
Point2D g_jikipos = {40, 400};//自キャラの座標

//画像ハンドル
int g_jikiimage[11];

//色々なファイルの読み込み
int LoadFiles(){
//画像ファイル読み込み
if(LoadDivGraph("media\\player01.bmp",
11,11,1,64,64,g_jikiimage) == -1) return -1;

return 1;
}


 mymain.h
//他から呼び出させるMyMainの関数
void MyMain();
int LoadFiles();


 myhelper.h(サンプルなので打ちミスはない)
#include "DxLib.h"
#include <limits.h>
#include <math.h>

//構造体宣言
//座標またはベクトルを記録する構造体
struct Vector{
float x,y;
};
typedef Vector Point2D;
//線を記録する構造体
struct Line2D{
Point2D startpos, endpos;
float katamuki;//傾きをラジアン値で記録
Vector speed;//移動している場合は速度をセット
};
//球体を記録する構造体
struct Ball2D{
Point2D position;
float hankei;//半径
};
//四角形を記録する構造体
struct Rect2D{
Point2D lefttop;
Point2D rightbottom;
float width;
float height;
};


//ライブラリ関数
Point2D PosInView(Point2D in);
int XInView(float inx);
int YInView(float iny);
void ScrollToLeft(float jikiposx);
void ScrollToRight(float jikiposx);
void ScrollToUp(float jikiposy);
void ScrollToDown(float jikiposy);
void DrawLineInView(float x1, float y1, float x2, float y2, int Color, int Thickness);
void DrawCircleInView(float x, float y, float r, int Color, int FillFlag);
void DrawAnimation(float x, float y, double ExtRate, double Angle,int TurnFlag,
int *imgarray, int allframe, float fps);
//ベクトル関数
Vector CreateVector(Vector in, float veclen);
Vector AddVector(Vector v1, Vector v2);
Vector SubVector(Vector v1, Vector v2);
Vector AddVectorInFrameTime(Vector pos, Vector speed);
Vector AddVectorInFrameTime2(Vector pos, Vector speed, Vector accel);
Vector Normalize(Vector in);
Vector RotateVector(Vector in, float radian);
float VectorLengthSquare(Vector in);
float DotProduct(Vector v1, Vector v2);
float CrossProduct(Vector v1, Vector v2);
void SetLine2DKatamuki(Line2D *in);
void DrawLine2D(Line2D in, int Color, int Thickness);
void DrawBall2D(Ball2D in, int Color, int Fill);
//当たり判定関数
bool HitTestLineAndBall(Line2D linein, Ball2D ballin);
bool IsPointAtLineFace(Line2D linein, Point2D ptin);
bool HitTestLineAndLine(Line2D line1, Line2D line2);
bool HitTestBallAndBall(Ball2D a, Ball2D b);
bool HitTestPointAndBox(Rect2D rect, Point2D pt);
//タイマー関数
void SetSimpleTimer(int idx, int time);
int GetPassedTime(int idx);


//グローバル変数
extern float g_frametime;
extern Rect2D g_framerect;//画面領域(当たり判定)
extern Point2D g_current_field_pos;//現在の左上座標
extern Rect2D g_stagesize;//ステージサイズ

//定数宣言
const float ZEROVALUE = 1e-10f;
const float PIE = 3.1415926f;
const int SCROLL_LIMIT = 200;
----------------------------------------------------------------
 エラー内容
1>myhelper.obj : error LNK2019: 未解決の外部シンボル "void __cdecl MyMain(void)" (?MyMain@@YAXXZ) が関数 _WinMain@16 で参照されました
1>C:\Documents and Settings\Owner\My Documents\Visual Studio 2008\Projects\my\Debug\my.exe : fatal error LNK1120: 外部参照 1 が未解決です
1>my - エラー 2、警告 0
ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ
----------------------------------------------------------------
画像を貼り付けときます
(見えにくい場合→http://www.dotup.org/uploda/www.dotup.org154142.jpg.html)
初心者なのでわかりやすくお願いします

Microsoft Visual Studio 2008
Version 9.0.21022.8 RTM
Microsoft .NET Framework
Version 3.5 SP1
----------------------------------------------------------------
新しいプリジェクト→Win32 コンソール アプリケーション(ソリューションのディレクトリを作成 チェック外す)→Windows アプリケーション(空のプロジェクト チェック外す)
----------------------------------------------------------------
 プログラム

 mymain.cpp
#include "myhelper.h"
#include "mymain.h"

//自...続きを読む

Aベストアンサー

ファイル構成から推測するに
mymain.cpp というファイルに
void MyMain(void) {
// ここに処理を書く
}
という関数が必要なようです。


人気Q&Aランキング