当前位置:  开发笔记 > 小程序 > 正文

在C程序中包含源文件

如何解决《在C程序中包含源文件》经验,为你挑选了3个好方法。

如何在这个小程序中包含foo.c的foo()函数(对不起我的noob问题):

在我的foo.h文件中:

/* foo.h */
#include 
#include 

int foo(double largeur);

在foo.c中:

/* foo.c */
#include 
#include 
#include "foo.h"

int foo(double largeur)
{
  printf("foo");
  return 0;
}

在main.c:

/* main.c */
#include 
#include 
#include "foo.h"

int main(int argc, char *argv[])
{
  printf("Avant...");
  foo(2);
  printf("Apres...");
  return 0;
}

编译后:

$ gcc -Wall -o main main.c

我收到此错误:

未定义的符号:"_ foo",引用自:ccerSyBF中的_main.l ld:未找到符号collect2:ld返回1退出状态

谢谢你的帮助.



1> bdonlan..:
$ gcc -Wall -o main main.c foo.c

foo.c如果你不告诉它,GCC不知道要找:)



2> 小智..:

在C中创建程序需要两个步骤,编译和链接.要运行编译部分,请使用以下-c选项gcc:

 gcc -c main.c

这将创建一个目标文件main.o(或main.obj在Windows上).同样的gcc -c foo.c.在此阶段您不会收到上面的错误消息.然后将这两个目标文件链接在一起.在此阶段,符号foo得到解决.您收到错误消息的原因是因为链接器找不到符号,因为它只是查看main.o而不是foo.o.链接器通常从中运行gcc,因此要链接目标文件并创建最终的可执行文件main,请使用

 gcc -o main main.o foo.o



3> AraK..:

你还必须编译,foo.c因为它是另一个模块.让我看看他们是如何做到的gcc:

$ gcc -Wall main.c foo.c -o main 

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有