お世話になっております。
C言語で分割コンパイルを行いたいのですが、エラーが出て
しまいます。コンパイラーはBorland C++ 5.5.1です。
ソースファイルはmain.cとch11-02.c.cの二つです。
以下にソースファイルの内容を載せます。
↓main.c
c
1#include <stdio.h> 2#include "ch11-02.c.c" 3 4int main(void) 5{ 6 int i; 7 8 f1(); // カウントの値を設定する 9 10 for(i=0; i<count1; i++) 11 printf("%d ", i); 12 13 return 0; 14}
↓ch11-02.c.c
c
1#include <stdlib.h> 2 3extern int count1; 4void f1(void); 5 6void f1(void) 7{ 8 count1 = 10; 9 //printf("f1 \n"); 10}
コマンドプロンプトで
bcc32 -c main.c
bcc32 -c ch11-02.c.c
を実行します。するとmain.objとch11-02.c.objが
作成されます。次に、
bcc32 main.obj ch11-02.c.obj
を実行すると次のようにエラーが表示されます。
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル '_count1' が未解決(C:\DOCUMENTS AND SETTINGS\TADA_J72_2\LOC
AL SETTINGS\APPLICATION DATA\EASYIDEC\PROJECT\CH11-01.C\MAIN.OBJ が参照)
Warning: パブリックシンボル f1 がモジュール C:\DOCUMENTS AND SETTINGS\TADA_J72
2\LOCAL SETTINGS\APPLICATION DATA\EASYIDEC\PROJECT\CH11-01.C\MAIN.OBJ と C:\DOCU
MENTS AND SETTINGS\TADA_J72_2\LOCAL SETTINGS\APPLICATION DATA\EASYIDEC\PROJECT\C
H11-01.C\CH11-02.C.OBJ の両方に定義されている
'_count1' が未解決とエラーが出て困っています。
プログラム文が悪いのか、コンパイルの仕方が悪いの
か分かりません。
ちなみにcount1という変数を消して、ch11-02.c.cの
f1関数でprintf文を実行するだけにしたら、一応
コンパイルできて実行ファイルができました。
どなたかお分かりの方がいれば教えていただければと
思います。
回答4件
あなたの回答
tips
プレビュー