c/c++语言开发共享C头问题:#include和“未定义引用”

好吧,我一直在尝试使用这个时间最长,我似乎无法让它正常工作。 我有三个文件, main.chello_world.chello_world.h 。 无论出于什么原因,他们似乎没有很好地编译,我真的无法弄清楚为什么……

这是我的源文件。 首先hello_world.c:

 #include  #include "hello_world.h" int hello_world(void) { printf("Hello, Stack Overflow!n"); return 0; } 

然后hello_world.h,简单:

 int hello_world(void); 

最后是main.c:

 #include "hello_world.h" int main() { hello_world(); return 0; } 

当我把它放入GCC时,这就是我得到的:

  cc main.c -o main  /tmp/ccSRLvFl.o:在函数`main'中:  main.c :(。text + 0x5):未定义引用`hello_world'  collect2:ld返回1退出状态  make:*** [main]错误1 

有人能帮帮我吗? 我真的坚持这个,但我99%肯定这是一个非常简单的修复。

     gcc main.c hello_world.c -o main 

    此外,始终使用标题保护:

     #ifndef HELLO_WORLD_H #define HELLO_WORLD_H /* header file contents go here */ #endif /* HELLO_WORLD_H */ 

    您没有在编译中包含hello_world.c。

      gcc hello_world.c main.c -o main 

    您应该将第二个.c文件hello_world.c中编译的目标文件与main.o链接起来

    试试这个

     cc -c main.c cc -c hello_world.c cc *.o -o hello_world 

    你没有链接到hello_world.c。

    一个简单的方法是运行此编译命令:

    cc -o main main.c hello_world.c

    更复杂的项目通常使用构建脚本或制作分离编译和链接命令的文件,但上述命令(组合两个步骤)应该适用于小项目。

    雅似乎你忘了链接hello_world.c。 我将是gcc hello_world.c main.c -o main。 如果文件数量较少,我们可以使用这种方法,但在较大的项目中,最好使用Make文件或一些编译脚本。

    需要了解更多c/c++开发分享C头问题:#include和“未定义引用”,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享C头问题:#include和“未定义引用”相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/980311.html

      (0)
      上一篇 2021年12月13日
      下一篇 2021年12月13日

      精彩推荐