免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: joshua83
打印 上一主题 下一主题

makefile 编译错误 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
11 [报告]
发表于 2011-11-23 00:01 |只看该作者
回复  snow888

是我给说的#include "add.c"好不好……
方兆国 发表于 2011-11-22 23:58



    你看看俺给贴的图片,可有 #include "add.c" ???

你让他那样干,不是不行,而是不建议这样子做,一般做大型开发,也没有这样干的 。

这本来就不应该如此。

另外:你说自己的 .h 头文件就要用 #include "" 的方式也是误导,俺就没有用这样的方法,一样可以。你可以看图。

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
12 [报告]
发表于 2011-11-23 00:02 |只看该作者
回复 8# snow888


    而且这会儿我是给他回答那个编译很多c文件需要添加很多#include的问题……

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2011-11-23 00:04 |只看该作者
回复  snow888


    而且这会儿我是给他回答那个编译很多c文件需要添加很多#include的问题……
方兆国 发表于 2011-11-23 00:02



    他得根本问题是第一个 include 打错了。

你可以仔细看看,如果不打错,他应该可以编译过去的。

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
14 [报告]
发表于 2011-11-23 00:08 |只看该作者
回复 11# snow888


    他是新手耶,先能把问题解决再说

而且那个#include <>和#include “”的问题
#include <>是先从系统库搜索
#include ""是先从工程目录搜索

而且有些编译器不支持通用

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
15 [报告]
发表于 2011-11-23 00:15 |只看该作者
回复  snow888


    他是新手耶,先能把问题解决再说

而且那个#include 和#include “”的问题
#i ...
方兆国 发表于 2011-11-23 00:08



    晕!

首先,第一个 inculde 没有改过来,改成 include ,能编译过去就有鬼了。

其次,那个 #include "add.c" 根本就是异类,如果真正开发软件这样干,只怕早被赶走了。

再次, -I 的编译参数,只要是 C 编译器,都是通用的,都支持,没有不支持的。

你帮他解决问题,你解决到点子上,得找准病根吧。

不信咱就再试试。

你看图。



论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
16 [报告]
发表于 2011-11-23 00:19 |只看该作者
回复 13# snow888
这个好吧
我这会儿才发现……

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2011-11-23 00:25 |只看该作者
回复  snow888
这个好吧
我这会儿才发现……
方兆国 发表于 2011-11-23 00:19



    老实说,俺最开始要他去掉 extern 才是可能存在编译器不通用的问题,早期的(很早了,大约是使用 xenix 的时候,这个写法是有问题的, extern 的意思是外部引用,换言之,这个函数需要在别的地方使用 int add(int a,int b )定义过,才能被 extern 再定义,这样做得具体原因可以看早期的 《C 语言大全》)编译器可能不支持该种定义方式。

不过后来在测试中发现这样写没有问题。

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
18 [报告]
发表于 2011-11-23 00:32 |只看该作者
回复 15# snow888


    第一个问题,我承认我没有仔细看他的帖子,大概看到没有加入add.c,就认为问题出到那儿了,这一点确实我错了

第二个问题,#include "add.c"的,我单纯是给他解决这个问题,告诉她,C语言里用文件外的函数时需要把函数所在的文件加入

第三个问题,我说的通用是指,有些时候我在某些IDE下遇到过,#include <>和#include “”不能互用的情况而且尤其出现在使用自己的文件的时侯,而且一些书上也说,两者检索目录顺序不一样

还有,某些编译器,你不加#include <stdio.h>也可以通过

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
19 [报告]
发表于 2011-11-23 00:36 |只看该作者
回复 17# snow888


    那个extends我还从来都没有用过,如果是一个函数的,只在主函数中调用,我就把它和主函数放在一起了,其他的,如果不是类(C++),需要单独建立文件的,就是简单的加一个#include “”,方便些(不过貌似很少遇到这种情况)

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
20 [报告]
发表于 2011-11-23 00:38 |只看该作者
回复  snow888


    第一个问题,我承认我没有仔细看他的帖子,大概看到没有加入add.c,就认为问题出到 ...
方兆国 发表于 2011-11-23 00:32



    这么说吧,你用不用 #include “add.c" 都不能为她解决问题,因为她得问题不在那里。

其次,你首先得抛开 你那个所谓的 IDE 的思想,IDE 只是开发工具,事实上 vim+插件一样可以做语法校验,不过大多数情况下,俺们不依赖IDE的校验,你得知道 C 是一种开发语言,与你所谓的 IDE 没有任何关系,IDE 只是一个写代码的工具,就像你用 notebook 来写代码也是一样的。

最后,所谓的不兼容,只能是从编译器上去考虑,而不能从编写代码的工具上考虑,你既然喜欢使用 eclipse ,你可知道,即使是编写 java 代码,eclipse 都有误报的时候,你又如何能依赖 ide 来为你检查语法上的错误?

还是那句话,C 是开发语言,而 IDE 是写代码的工具。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP