• 締切済み

「utime.h が見つからない」エラーにはどう対処? Boland C v5.5無料版 on win2000 DOS窓

ある上手な人が書いた、Cソース一式があります。便利なCソースなので手を加えてコンパイル・リンクしたいです。内容はある科学dataの変換プログラムです。*.cファイルが15個ぐらい、*.hが4個ぐらい。全体でざっくり1000行ほどあります。 手元に、無料版Borland C v5.5 があります。Windows2000で、コンパイル・リンクをWindows2000のDOS窓で、試みました。が、「utime.h が見つからない」エラーになります。他のincludeファイルはうまく取り込まれています。事実、*.hファイルがある include/sys を見てみると、確かに、include/sys/utime.h は存在しません。(time.hなど4つのファイルが存在していましたが)。。。 こういう場合、どうしたら良いでしょうか?研究室のどこかに転がっているUNIXマシンから、include/sys/utime.h をコピーしてきて、windows2000の中で、上記Borland C v5.5 のinstallされたdirのinclude/sysに、さりげなく、copyしておけば、その後、コンパイルリンクはOKになるという、そういう簡単な話なのでしょうか? それともこのcopyは何か問題がありそうでしょうか。それともぜんぜん検討違いでしょうか。 どこかに転がっているUNIXマシンの前に座りなおして、そこで開発するというのはできれば避けたいです。 どうかよろしくお願い致します。

みんなの回答

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.3

ある上手な人が書いた、Cソース一式があります。 1.この上手な人に連絡を取り、使用許可をもらう。 2.ついでに、ヘッダーファイルをメールに添付してくれるようにお願いする。 3.あくまでも丁寧に頼む。 4.お金儲けはしない旨を明記する。 5.完成して暁には自分もフリーウエアで公開することを約束しておく。 これで、上手くゆくと思います。 頑張って下さい。

harapeko99
質問者

お礼

ありがとうございます。苦手なのですががんばってみます。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

単純にインクルードファイルを持ってくるだけでは駄目だと思います。 utime.h は、ファイルのアクセス時刻を変更するシステムコール utime() のために 用意されているインクルードファイルです。 「ある上手な人」が書いたプログラムであれば、不要なインクルードファイルを記述している とは思えないので、実際に utime() というシステムコールをプログラム中で使っているはず です。 インクルードファイルを持ってきた場合には、コンパイルは通るはずですが、その後のリンクで utime() が無いわけですから、今度はリンクエラーになります。 方針としては以下の三つ。 A) どこかに転がっている unix マシン上で開発(telnet があるのですから、自席で大丈夫?) B) utime() を自分で実装してしまう C) utime() を使って実現している機能をあきらめて、元のソースから utime() を使っている箇所を削除してしまう # 私なら、Bかな。

harapeko99
質問者

お礼

ありがとうございます。私もBをしたいですが、敷居が高いです。

  • nipotan
  • ベストアンサー率59% (134/227)
回答No.1

手元の Borland C++ 5.5.1 for Win32 では、utime.h は include にあります。 bin/bcc32.cfg に -I オプションで include/sys なんて組み込んでます? 逆に include は含んでないですか? (それとも、コマンドラインから -I 指定してるとか?) もし #include "sys/utime.h" って記述になってるなら、 #include <utime.h> になおしてからコンパイルしてみてください。

harapeko99
質問者

お礼

1)「bin/bcc32.cfg に -I オプションで include/sys 」を「組み込んで」いました。 2)「もし #include "sys/utime.h" って記述になってるなら」→なっていましたので、「#include <utime.h> になおしてからコンパイルしてみ」ました。 期待どおり、utime.hが見つからないというエラーは出なくなりました。ところが、構造体 _utimebufが見つからない、など、のエラーが表示されるようになりました。 どうもありがとうございました。

関連するQ&A

  • WindowsでコンパイルできるがUNIXではできない

    下記のプログラムは、2^-0.94を計算するものです。 このプログラムはwindows2000のマシンでコンパイルできるのですが、UNIXのマシンだと Unresolved text symbol "pow" というエラーがでてコンパイルできません。 UNIXのマシンは「cc ファイル名」でコンパイルを実行します。 どうすればコンパイルできるようになるのでしょうか。お手数ですが、教えてください。よろしくお願いします。 ※windows2000マシンのコンパイラ:Borland C++ Compiler 5.5 #include <stdio.h> #include <math.h> int main() { int a; double b,c; a=2; b=-0.94; c=pow(a,b); printf("%lf\n",c); return 0; }

  • Borland C++5.5の実行でDOS窓が一瞬で消える

    フリーのBorland C++5.5でソースをbcc32でコンパイルして実行ファイルを作成し、実行ファイルをダブルクリックすると一瞬だけDOS窓が見えて消えてしまいます。 従って実行結果を確認することができません。 継続して実行結果を表示させる方法はないでしょうか?

  • Cコンパイラーのついてのご質問です。

    Cの勉強をしようとして、 MS-DOSを開いて、 bcc32 sample11.cといれてコンパイルをしようとしたんですが、『 C:\source>bcc32 sample11.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland sample11.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Fatal: ファイル C0X32.OBJ が開けません C:\source>    』のようにでてきましたどうすれば良いのでしょうか?教えてください。 (ちなみに、今回のプログラムは #include <stdio.h> main() { printf("Hello!"); return 0; } です初めてのプログラムなので簡単です。)初めてプログラミングを勉強するので、できれば、詳しくお願いします。

  • PathIsDirectoryを使って

    #include <windows.h> #include <stdio.h> //#include <Dbghelp.h> #include <shlwapi.h> void main(void) { char *Path = "c:\\windows\\system32\\"; if(PathIsDirectory(Path)) printf("'%s'は正しいディレクトリである。\n",Path); else printf("'%s'は正しいディレクトリでない。\n",Path); } をボーランドC++5.5でコンパイルすると Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland test.cpp: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル 'PathIsDirectoryA' が未解決(C:\BORLAND\test.OBJ が参照) というエラーがでました。 どうしたらいいのでしょうか?

  • C言語 "myfunc.h"がエラーになります。

    いつも大変お世話になっております。 C言語に関する質問です。 "myfunc.h"の箇所がコンパイルエラーになります。 全体のコードとコンパイルエラーが下記です。 #include <stdio.h> #include "myfunc.h" int main(void) { int num1, num2, ans; printf("1番目の整数を入力してください。\n"); scanf("%d", &num1); printf("2番目の整数を入力してください。\n"); scanf("%d", &num2); ans = max(num1, num2); printf("最大値は%dです。\n" , ans); return 0; } コンパイルエラー C:\MinGW>gcc text13.c -o text13 text13.c:2:20: fatal error: myfunc.h: No such file or directory #include "myfunc.h" ^ compilation terminated. です。 ご多忙のところ恐れ入ります。 どこがおかしいのか、 ご回答のほどよろしくお願い申し上げます。

  • condefs.hはどこにあるの?

    #include <stdio.h> #include <windows.h> #ifdef __BORLANDC__ #include <condefs.h> #endif をヘッダに含むプログラムspitest.cppを無償コンパイラのボーランドC++5.5でコンパイルすると Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland spitest.cpp: エラー E2209 spitest.cpp 8: インクルードファイル 'condefs.h' をオープンできない *** 1 errors in Compile *** とエラーがでました。 どうしたらいいのでしょうか?

  • Win2000 DOS窓 C言語で COM1入力バイナリを読み込み表示したい

    どうしたら良いでしょうか。 ThinkPad, Windows2000, DOS窓, Borland C v5.5.1 無料版 COM1の読込みのみ(書き出し無し) dataは、バイナリ形式で、約120Byte/秒(時に121Byte/秒だったり若干変動します)で入ってくる垂れ流し方式。一連のデータの先頭であることは、header (0x10 0x03 0x10 0x75という4バイト)の存在で識別します。 このようにCOM1から入力されてくる情報の一部をシンプルにDOS窓で表示するプログラムを作成したいのです。どんな感じのプログラムを打てばいいのか分かりません。もしわかる人がいましたら教えてください、できればプログラム付で教えてもらえればうれしいです。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=106550 に関連質問と回答がありましたが、UNIXの例でしたので私には使えないので、windows2000のDOS窓、borland C v5.5.1で、動く例を教えて頂けますると、うれしいです。 よろしくお願い致します。

  • 【エラー】Cpadで初めてコンパイル

    Cpad for Borlandで以下のようなソースを書きコンパイルをしましたが、失敗し、行き詰っております。 当方、初プログラミングに挑戦しております。 <環境> OS:XP(HOME) コンパイラ:Borland C++ Compiler エディタ:Cpad for Borland <動作状況> ソース: #include <stdio.h> int main ( void ) { printf(mori); return 0; } エラー情報: 「コンパイルに失敗しました。 ファイル"ファイル"D:\source\test1.exe"は存在しません」 参考情報(参考にならないかもしれませんが…): ・コンパイラはDドライブにインストールしております。 ・コンパイラのパスはD:\borland\bcc55\Bin\bcc32.exeです。 以上、よろしくお願いいたします。

  • stdio.hをオープンできない…

    borlandのコンパイラーについての質問です(昔本付属のCDからインストールしたものです。verは5.5だと思われます。) ソースファイル include<stdio.h> void main(void){ printf("おめでとう!!\n"); } コンパイル c:\borland\bcc55\bin>bcc32 basic.c エラーメッセージはE2209 basic.c 1:インクルードファイルstdio.hをオープンできない、となります。このためprintfが使えないエラーメッセージも表示されます。過去の質問を色々と見させて頂きました。以前(昨年夏頃)には使えていた為、必要なファイルが消えている等の原因はなさそうです。メモ帳でbcc32も開いてみましたが-I"c:\borland\Bcc55\include"-L"c:\borland\Bcc55\libの表示があったので必要なファイルも開けているのではないかと勝手に解釈しています(bcc32.cfgフォルダなるものは存在しませんでしたが…)。いろいろと頑張ってみたのですがどうにもダメそうです。コンパイラが作動しないと課題が前に進まないため、大変困っています。是非皆様のお力をお貸し下さい。よろしくお願いします。

  • Borland C++ Compiler で winbase.h を使えないのですが・・・

    Borland C++ Compiler を使っているのですが,winbase.h 自体が使用できません。 次のようなプログラムでもコンパイルが通りません。 #include <winbase.h> int main(void){ return 0; } エラーは以下の通りです。 *** コンパイル開始 *** Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland ########.c: エラー E2139 C:\borland\bcc55\Include\winbase.h 227: 宣言に ; がない エラー E2238 C:\borland\bcc55\Include\winbase.h 228: 'ULONG_PTR' の宣言が複数見つかった エラー E2344 C:\borland\bcc55\Include\winbase.h 227: 一つ前の 'ULONG_PTR' の定義位置 (中略) エラー E2228 C:\borland\bcc55\Include\winbase.h 263: エラーあるいは警告が多すぎる *** 26 errors in Compile *** *** コンパイル終了 *** どうすればよいでしょうか? 何かちょっとした情報でもお願いします。

専門家に質問してみよう