有3个文件,都在同一目录下,我用tc3运行报错,竟是"unable to open file hello.h"
hello.h
void hello();
hello.c
#include <stdio.h>
void hello()
{
printf("hello!");
}
test.c
#include "hello.h"
void main()
{
hello();
}
待我将hello.h放到tc\include目录下后报错 hello()没定义.
那该如何做呢,如果不要用工程的话.在线等待.
不要将。h放到tc\include。放到与.c相同的目录或者把.h加进工程即可
加上#include "hello.c"
不要将.h放到tc\include,
放到与.c相同的目录
或者把.h加进工程即可
设置选项 OPTION 看看 DIRECTORY 是否正确...
首先添加工程*.prj,在工程*.prj里面写上所有的函数名*.c。
然后在调用外部的函数时需:
首先#include <hello.c>
然后再函数声明extend void hello();
接着就可以在该函数中调用hello()了。
定义工程test.prj
/*** test.prj ***/
test.c
hello.c
/*** hello.c ***/
#include <stdio.h>
void hello()
{
printf("hello!");
}
/*** test.c ***/
extend void hello();
#include "hello.h"
void main()
{
hello();
}
在hello.c中也要包括#include <hello.h>
同时你只是在主文件中包含了头文件,而它不回自动找到hello.c文件对hello.h中的函数进行定义,
所以必须放到工程中才可以。因为包含头文件只是把相应的函数和宏定义声名告诉主函数,而怎么实现则是通过工程包含来实现,而不是让头文件自己找。
还有extend void hello();的extend可以不写,因为函数本来默认的就是它,他回在工程中自动找到定义。
$ gcc -o test test.c hello.c
代码是没任何问题的. 建议把hello.h hello.c test.c 放在同一目录再试下.