的main.c
#include <stdio.h>
#include <stdlib.h>
#include "functions.h"
int main()
{
myFct();
return 0;
}
functions.h
#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED
#include <stdio.h>
extern void myFct(void);
#endif // FUNCTIONS_H_INCLUDED
functions.c
#include "functions.h"
void myFct(void)
{
printf ("helloFCT");
}
在编译这个项目时,我有这个错误&#34;对myFct的未定义引用&#34;
我正在使用Code :: Blocks13.12和Windows 8
提前致谢
答案 0 :(得分:2)
您需要编译这两个文件
当我刚编译main.c时出现错误
{yanivx@~/functions}$ gcc main.c
/tmp/ccoJitEe.o: In function `main':
main.c:(.text+0x7): undefined reference to `myFct'
collect2: ld returned 1 exit status
在使用这两个文件进行编译时,未发现任何错误。
{yanivx@~/functions}$ gcc main.c functions.c
{yanivx@~/functions}$ ./a.out
helloFCT
要在Codeblocks中编译多个文件,您需要创建一个包含所有文件的项目。
以下链接可以帮助您
http://forums.codeblocks.org/index.php?topic=13193.0
code::blocks - how to compile multiple file projects
“extern”改变了联系。使用关键字,假定函数/变量在其他地方可用,并且解析将延迟到链接器。
删除extern
问题应该得到解决。
#ifndef FUNCTIONS_H_INCLUDED
#define FUNCTIONS_H_INCLUDED
#include <stdio.h>
void myFct(void);
#endif // FUNCTIONS_H_INCLUDED
答案 1 :(得分:0)
谢谢yanivx
我通过以下链接获得解决方案:
code::blocks - how to compile multiple file projects
“转到显示项目的左侧面板,然后右键单击.cpp文件。选择属性,然后转到构建。选中标题属于目标标题下的框:”调试“和”发布“”