- 締切済み
「外部シンボル '__inp' が未解決」
Borland C++CompilerとCPad for Borland C++Compilerをつかってdllを作ろうとしているのですが、 コンパイルがうまく行きません。 ------------------------------<Dio32c.c>------------------------------ #include "jni.h" #include <stdio.h> #include <conio.h> JNIEXPORT long JNICALL Java_IO32_InpB(JNIEnv *env, jobject obj, long port) { return _inp(port); } JNIEXPORT void JNICALL Java_IO32_OutB(JNIEnv *env, jobject obj, long port, long data) {_outp(port, data); return; } ---------------------------------------------------------------------- というプログラムに対し、コンパイル時パラメータを「-WD」と指定してコンパイルすると、以下のメッセージが返ってきちゃいます。 ---------------------------------------------------------------------- ■C:\My Documents\C> bcc32 -WD Dio32jc.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland Dio32jc.c: ==<警告文は字数制限のため割愛させていただきました。by taropoo>== Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '__inp' が未解決(C:\MY DOCUMENTS\C\DIO32JC.OBJ が参照) Error: 外部シンボル '__outp' が未解決(C:\MY DOCUMENTS\C\DIO32JC.OBJ が参照) ---------------------------------------------------------------------- どなたか、原因&対策、分かりませんでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ykkw_2001
- ベストアンサー率26% (267/1014)
エラーメッセージは、「_inp(),_outp()の関数の本体がない」という意味です。 Borland C は、もっていないので、具体的に指摘できませんが、ライブラリのコマンド(tlink.exe,link.exeなど)を使って、コンパイラのライブラリファイル(*.lib)を調べて、_inp,_outp が入っているライブラリファイルをリンクするようにしてやれば、解決します。 まずは、マニュアルで、inp() 標準関数のページを探しましょう。 ただし、お使いのコンパイラが「Borland C++ 5.5.1 for Win32」なので、気になっていますが、WinNT,2000などでは、直接のIO関数(inp,outp)は使えないと思います。 Win95,98,ME ならOK(のはず)です。
補足
tlink.exe,link.exeは見つかりませんでした。 ilink32.exeと言うのはあるのですが関係あるのでしょうか? コンパイラのライブラリファイル(*.lib)の調べ方もちょっと分かりません。 ヘルプにはinp()の項目はありませんでした。 も少し具体的に教えていただけますでしょうか? ちなみにOSはWin98です。