• 締切済み

構造体のプログラム・・・・

構造体のプログラムを作っているのですが、コンパイル時に "Fatal: ファイル 構造体1-1.OBJが開けません"と出て実行できません。 やっぱりファイル名が日本語だとダメなんですか? 他の日本語の名前のプログラムは実行できるのに・・。

みんなの回答

  • fatbowler
  • ベストアンサー率48% (26/54)
回答No.4

開発環境を詳しく書いて下さい。 それから「実行できる」という表現は、exeファイルを走らせる時に使う言葉です。 一般的(というとUnixユーザーに怒られるかもしれませんが)なWindows環境でのビルドは、 ソースファイル(xxx.c) ↓(コンパイル) オブジェクトファイル(xxx.obj) ↓(リンク) 実行ファイル(xxx.exe) という順に進みます。 質問文の「実行できません」はリンクの際にエラーが出ているようですが、 「"net構造体14-1"という名前で保存したプログラムが動いちゃった」とは、 net構造体14-1.c というソースファイルのビルドが成功して net構造体14-1.exe というファイルが自動的に作成され、その実行もできた、という意味でしょうか? できたexeファイルをrenameした、といったことはありませんか?

sikimori
質問者

補足

開発環境? OS:Windows XP エディタ:CPad for Borland C++Compiler コンパイラ:Borland C++ Compiler 5.5 "net構造体14-1"はexeファイルが自動で作成され、実行も出来ました。 もちろんその後何もいじっていません。 質問文は、exeファイルは作成されず、objとcファイルだけが作成されています。

回答No.3

あと、ファイルシステムのロケールの設定と、そのソースプログラムのロケール設定が違うと、当然に開きません。ファイル名がEUC-JPなら、ソースプログラムもEUC-JPで編集しないといけません。 はずしていたらすみません。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

少なくとも環境ぐらいは書きましょう。

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.1

> 構造体1-1.OBJ 拡張子以外のファイル名が9バイトありますね。 お使いのコンパイラは  ・日本語のファイル名  ・ロングファイルネーム の両方に対応していますか? 念のため、半角英数字8バイト以内のファイル名に修正して、 コンパイルしてみてはいかがでしょうか。

sikimori
質問者

補足

お早い回答ありがとうございます。 "構造体"の部分を"KOZOTAI"にしてみたら動いたのですが、これを作る以前に"net構造体14-1"という名前で保存したプログラムが動いちゃったんですよ・・・。 これだと13バイトなので、もうどうなっているのやら・・・。

関連するQ&A

  • 構造体の初期化方法について

    こんばんわ。 何度も申し訳ありません。 VC++.NET 2003を用いてコンソールプログラミングを行っています。前回この掲示板を利用して複数回実行するプログラムを作成し、そこに構造体を用いたプログラムを作成しました。以下に概要を示します。 グローバルで構造体を宣言しているため、複数回実行を行うプログラムでは前回の値が格納されたままであると思い、毎回実行時に構造体の初期化を行いたいと思っています。 そこで、以下に示します構造体の初期化はどのように記述すればよいのでしょうか?0で初期化したいと思っています。 よろしくお願い致します。 #define MAX 2000 //グローバル struct tag{ int Npkt; int gettime; int rPkt; int lossPkt; }rdata[MAX]; main(){   //for文で複数回実行処理   for(i=0;i<=5;i++){   //ここで構造体の初期化を記述する //例として、5回プログラムを実行する   } }

  • COBOLプログラムからC関数を呼び出す方法

    Cプログラムをプリコンパイルした後、コンパイルした際にできる「.obj」ファイルを、ひとかたまりのライブラリファイルにすることは可能でしょうか? 「aaaaa.pc」 →prec→ 「aaaaa.c」 →cl→ 「aaaaa.obj」作成 「bbbbb.pc」 →prec→ 「bbbbb.c」 →cl→ 「bbbbb.obj」作成 「ccccc.pc」 →prec→ 「ccccc.c」 →cl→ 「ccccc.obj」作成 aaaaa.obj,bbbbb.obj,ccccc.obj から libraryファイル作成 もともとUNIX上でコンパイルした「.o」ファイルより「library.a」ファイルを作成し、COBOLプログラム(呼び出し元)のコンパイル時にリンクさせておりました。 それをWINDOWSで行いたいと思っております。 コンパイルはBATファイルを作成(Oracleインストール時にあった、pcmake.batをカスタマイズ)して、「prec」コマンドでプリコンパイルして、VisualStadioのC++をコマンドライン「cl -c(リンクなし)」でコンパイルして、最終的に中間ファイル「.obj」を作成しております。 ご説明が分かりにくくて申し訳ございませんが、具体的な方法・ご指摘がございましたら、宜しくお願い致します。

  • プログラムを組むと。

    Javaのプログラムを作って、 〇〇.java  と名前を付けたんですけど、 上手くコンパイルできません。 どうやら、ファイル名が変わってるみたいです。 それに伴い、コンパイルが上手く出来ません。 今まで会社のPCでやってた時は、そんなに問題無かったんで、 どうしたら出来るのか、教えて下さい。 ちなみに使ってるのは、 Windows’98 です。 会社で使ってたのは、Windows2000Proなんたら ってやつです。 やっぱ随分違う代物なのでしょうか? 宜しくお願いします。

  • 構造体の型について

    ある構造体をxxxと名づける以下のプログラムを作成しました。 ーーーーーーーーーーー #include <stdio.h> #include <string.h> main() { typedef struct { char variable[64]; char type[64]; char value[512]; } xxx; xxx aaa; strcpy(aaa.variable,"bbb"); printf("%s\n",aaa.variable); } ーーーーーーーーーーー これは動き、bbbと表示されます。 しかしながら、構造体のポインタを使用した 以下のプログラムではコンパイルはとおりますが実行時にコアダンプして落ち ます。 ーーーーーーーーーーーーーーーーーーーー #include <stdio.h> #include <string.h> main() { typedef struct { char variable[64]; char type[64]; char value[512]; } xxx; xxx* aaa; strcpy(aaa->variable,"bbb"); printf("%s\n",aaa->variable); } ーーーーーーーーーーーーーーーーーーーーーーー 両プログラムの意図はまったく同じなのに何故いけないのでしょうか。

  • C#の構造体に関して

    C#の構造体に関して C#で構造体で配列を持ちたいと思い、宣言の仕方や使い方を 勉強していますが、どうしてもコンパイルは通るもののエラーと なってしまいます。 《ソース》 単純に構造体で宣言した"a"という配列に、"ABC"という文字列を 代入したいだけですが。。。 namespace テスト環境 { struct test { public string []a; } class Program { static void Main(string[] args) { test aaa = new test(); aaa.a[0] = "ABC"; } } } 配列の初期化等は、ようやく理解したつもりではいますが、構造体 が絡むとどうしてもわかりません。 どこをどのように修正したら良いかを教えて下さい。 初歩的な質問で申し訳ありませんが、よろしくお願いします。

  • クラスのプロパティに構造体を使いたい。

    VB6+SP5にて開発しております。 「クラス名.構造体名.変数名 = 値」といった感じで構造体をプロパティとして使用できればと考えているのですが、単純に構造体を定義しただけでは駄目なようです。実現は無理なのでしょうか?よろしくお願いします。

  • ソースプログラムでの日本語使用について

    Windows10のパワーシェルでソースプログラムをコンパイルしていますが、そのソースプログラムの出力部で日本語を用いると文字化けてしまいます。出力部とは、C言語だったらprintf, Fortranだったらwrite文です。ここで文字化けを解消するにはどうしたらいいのでしょうか。 パワーシェルは日本語ファイル、フォルダに対応しており、ファイル名が日本語でも問題ないようです。また、ソース内のコメントは日本語でもOKです。ただ、ソースプログラムを実行するとその結果の出力が文字化けてしまうのですが。コンパイラオプションでしょうか。 Rubyはコメントでさえも日本語がUTF8でないとダメとか、いろいろ事情がありそうです。 あるC言語の解説本は冒頭部から思いっきり日本語出力となっており、それが対応できないのです。 使用しているコンパイラはGNU系のもので、gccなどです。よろしくお願いします。

  • Javaプログラムの実行時エラー

     Javaの学習をしている初心者です 今までメモ帳でコーディングしてコマンドプロンプトでコンパイル・実行していましたが、本日も同様のことをしていたところ、実行を要求するとException in thread "main" java.lang.NoClassDefFoundError: なるエラーが出ました。 このエラーはコーディング時のクラス名とファイル登録時のクラス名が異なる場合に出ていたような気がします。 今回は今まで作成したプログラム全部で、実行するとこのエラーが出ます。新しく作成したものもだめです。…コンパイルは うまくいきますが、実行するとこのエラーが出ます。  どうしたらよいかどなたかお教えください。

  • BLOCK構造体とFORTRAN

    fortranでプログラムを組むことになったのですが、これまでプログラムを組んだことがなかったので困っています。 gridgenで作成した.grdファイルをfortranで読み込ませることがうまくできません。 原因は、.grdのフォーマットがBLOCK構造体であるからだと考えています。 POINT構造体なら読み込めることが分かっているのですが…。 そこで質問です。 BLOCK構造体である「.grd」ファイルを読み込み、POINT構造体の「.dat」ファイルを出力するプログラムをfortranで組むにはどうしたらいいですか? BLOCK構造体とは以下の形式。 X1 X2 X3 X4 X5 …Xn Y1 Y2 Y3 Y4 Y5 … Yn Z1 Z2 Z3 Z4 Z5 … Zn POINT構造体は以下。 X1 Y1 Z1 X2 Y2 Z2 X3 Y3 Z3 X4 Y4 Z4 X5 Y5 Z5 … … … Xn Yn Zn

  • ボーランド C++

    ボーランドのC/C++コンパイラーを使ってますが、ソースをコンパイルしたら3つファイルが作成されました。 ソースの名前がPROG4で新しく出来たのが、PROG4.obj, PROG4.tds,PROG4.BAKです。プログラムを実行するには どうしたらいいでしょうか?又この3つのプログラムは何をさしますか?

専門家に質問してみよう