プロが教える店舗&オフィスのセキュリティ対策術

ある上手な人が書いた、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マシンの前に座りなおして、そこで開発するというのはできれば避けたいです。

どうかよろしくお願い致します。

A 回答 (3件)

ある上手な人が書いた、Cソース一式があります。



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

これで、上手くゆくと思います。
頑張って下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/08 10:46

単純にインクルードファイルを持ってくるだけでは駄目だと思います。



utime.h は、ファイルのアクセス時刻を変更するシステムコール utime() のために
用意されているインクルードファイルです。

「ある上手な人」が書いたプログラムであれば、不要なインクルードファイルを記述している
とは思えないので、実際に utime() というシステムコールをプログラム中で使っているはず
です。

インクルードファイルを持ってきた場合には、コンパイルは通るはずですが、その後のリンクで
utime() が無いわけですから、今度はリンクエラーになります。

方針としては以下の三つ。

A) どこかに転がっている unix マシン上で開発(telnet があるのですから、自席で大丈夫?)
B) utime() を自分で実装してしまう
C) utime() を使って実現している機能をあきらめて、元のソースから utime() を使っている箇所を削除してしまう

# 私なら、Bかな。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/08 10:47

手元の 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>
になおしてからコンパイルしてみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/07 13:00

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