作者b8888 (b8888)
看板C_and_CPP
标题[问题] 有关gcc 分开编译
时间Tue Sep 8 17:09:10 2009
各位大大好,小弟有一个程式
file.c
--------
#include <stdio.h> /* 宣告 printf, scanf, fopen,fprintf...*/│
#include <string.h> /* 宣告 strcmp() 的原型 */
void line(FILE *fp) /* 列出分隔线 */
{
int i;
char aa[]="11111111111111111";
fprintf( fp, aa );
for( i=0 ; i<60 ; i++ )
fprintf( fp, "-" );
fprintf( fp, "\n" );
}
void main(void)
{
FILE *fp; /* 档案指标 */
char filename[20]; /* 输出报表的档名 */
char client[40]; /* 交易对象名称 */
float amount; /* 交易金额 */
float total=0; /* 总金额 */
printf("File to record the amount : ");
scanf("%19s", filename ); /* 读取输出报表档名 */
fp = fopen( filename, "w"); /* 开启报表档 */
line( fp );
fprintf( fp, "%-40s $%f\n", "***** Total", total );
line( fp );
fclose(fp); /* 关闭报表档 */
}
可以使用 gcc file.c -o file.exe 产生执行档
但是~
我想拆成二个档案
file2.c
---------
#include <stdio.h> /* 宣告 printf, scanf, fopen,fprintf...*/│
#include <string.h> /* 宣告 strcmp() 的原型 */
int main(void)
{
FILE *fp; /* 档案指标 */
char filename[20]; /* 输出报表的档名 */
char client[40]; /* 交易对象名称 */
float amount; /* 交易金额 */
float total=0; /* 总金额 */
printf("File to record the amount : ");
scanf("%19s", filename ); /* 读取输出报表档名 */
fp = fopen( filename, "w"); /* 开启报表档 */
line( fp );
fprintf( fp, "%-40s $%f\n", "***** Total", total );
line( fp );
fclose(fp); /* 关闭报表档 */
}
及
line.c
--------
#include <stdio.h> /* 宣告 printf, scanf, fopen,fprintf...*/│
void line(extern FILE *fp) /* 列出分隔线 */
{
int i;
char aa[]="11111111111111111";
fprintf( fp, aa );
for( i=0 ; i<60 ; i++ )
fprintf( fp, "-" );
fprintf( fp, "\n" );
}
想请问各位大大程式该何修改?
我有试着在line(extern FILE *fp) 加入extern 但是还是有问题~~
我先用
C:\Dev-Cpp\bin>gcc -c line.c line.o
但有问题?
line.c:1:65: warning: extra tokens at end of #inc
line.c:2: error: storage class specified for para
line.c:10:4: warning: no newline at end of file
编译的方法是先
gcc -c line.c line.o
gcc -c file2.c file2.o
再
gcc line.o file2.o file.exe
这样对吗??
还有没有其他的方法??
或是有什麽资料可以供我参考(有关分开编译方面)
谢谢您的回应
ps' 小弟是初学者,不敬之处见谅见谅
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.40.177.195
1F:→ tinlans:line 的参数为什麽要放 extern? 09/08 17:16
2F:→ tinlans:gcc line.o file2.o -o file.exe 09/08 17:17
3F:推 ledia:是不是都少了 -o 09/08 17:27