小飞学到老 发表于 2017-3-17 22:46:33

第一课 动动手 [Error] ld returned 1 exit status

照着抄的动动手,不知道哪个地方出错了。请指点

小飞学到老 发表于 2017-3-17 22:49:10

还有两条未定义到引用。我是不是漏了什么?

人造人 发表于 2017-3-17 23:07:27

贴一个图片不管用,还要贴代码

小甲鱼 发表于 2017-3-17 23:10:55

建议贴代码大家比较容易帮你定位问题所在。

从错误内容我可以推断出两个错误都是打错字母导致:

1. _finefirst 应该是 _findfirst

2. findALLDrs 应该是 findALLDirs

朝闻夕死 发表于 2017-3-17 23:13:11

看48行代码是不是拼写错了    _findfirst
看60行代码是不是拼写错了    findALLDirs

或者其他地方这俩单词写错了

小飞学到老 发表于 2017-3-17 23:39:40

谢谢,明天继续学习。

Surprise168 发表于 2018-5-15 16:00:28

再看看我这也这个报错是什么问题?
#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX 256

long total;

int countlines(const char *filename);
void findallcodes(const char *path);
void findallfiles(const char *patih);

int contlines(const char *filename)
{
        FILE *fp;
        int count = 0;
        int temp;
       
        if((fp = fopen(filename,"r")) == NULL)
        {
                fprintf(stderr, "Can not open the file: %s\n", filename);
                return 0;
        }
       
        while((temp = fgetc(fp)) != EOF)
        {
                if (temp == '\n')
                {
                        count++;
                }
        }
       
        fclose(fp);
       
        return count;
}

void findallcodes(const char *path)
{
        struct _finddata_t fa;
        long handle;
        char thePath,target;
       
        strcpy(thePath,path);
        if((handle = _findfirst(strcat(thePath, "/*.c"),&fa))!= -1L)
        {
                do
                {
                        sprintf(target, "%s/%s",path,fa.name);
                        total += countlines(target);
               }while (_findnext(handle, &fa) == 0);
       }
       
       _findclose(handle);
}

void findalldirs(const char *path)
{
        struct _finddata_t fa;
        long handle;
        char thepath;
       
        strcpy(thepath,path);
        if((handle = _findfirst(strcat(thepath, "/*"), &fa)) == -1L)
        {
                fprintf(stderr,"The path %s is wrong!\n",path);
                return;
        }
       
        do
        {
                if(!strcmp(fa.name, ".") || !strcmp(fa.name, ".."))
                continue;
               
                if( fa.attrib == _A_SUBDIR)
                {
                        sprintf(thepath, "%s/%s",path,fa.name);
                        findallcodes(thepath);
                        findalldirs(thepath);
                }             
        }while (_findnext(handle,&fa) == 0);
       
        _findclose(handle);
}

int main()
{
        char path = ".";
       
        printf("计算中...\n");
       
        findallcodes(path);
        findalldirs(path);
       
        printf("目前你总共写了 %ld 行代码!\n\n", total);
        system("pause");
       
        return 0;
}

人造人 发表于 2018-5-15 16:15:08

Surprise168 发表于 2018-5-15 16:00
再看看我这也这个报错是什么问题?

Surprise168 发表于 2018-5-15 16:25:59

人造人 发表于 2018-5-15 16:15


果然是这里,谢谢,还有个问题,编译运行后,计算出的代码行数和小甲鱼老师说的不对是什么问题呢?

人造人 发表于 2018-5-15 16:32:02

Surprise168 发表于 2018-5-15 16:25
果然是这里,谢谢,还有个问题,编译运行后,计算出的代码行数和小甲鱼老师说的不对是什么问题呢?

哪里不对?

Surprise168 发表于 2018-5-15 18:20:53

人造人 发表于 2018-5-15 16:32
哪里不对?

代码数结果不对

人造人 发表于 2018-5-15 18:30:05

Surprise168 发表于 2018-5-15 18:20
代码数结果不对

313 行?
不对吗?
你认为应该是多少?

Surprise168 发表于 2018-5-15 20:31:54

人造人 发表于 2018-5-15 18:30
313 行?
不对吗?
你认为应该是多少?

鱼老师在第一课答案说的是101行代码才对

人造人 发表于 2018-5-15 20:46:24

Surprise168 发表于 2018-5-15 20:31
鱼老师在第一课答案说的是101行代码才对

这个代码是统计你写的代码行数,不是统计小甲鱼的
^_^

人造人 发表于 2018-5-15 20:52:47

Surprise168 发表于 2018-5-15 20:31
鱼老师在第一课答案说的是101行代码才对

我系统上的结果

Surprise168 发表于 2018-5-15 21:33:07

人造人 发表于 2018-5-15 20:52
我系统上的结果

{:5_92:} 还是有些疑问呢!麻烦你了,我这里的不知道为什么就是不正确{:5_100:}

人造人 发表于 2018-5-15 21:39:56

Surprise168 发表于 2018-5-15 21:33
还是有些疑问呢!麻烦你了,我这里的不知道为什么就是不正确

在当前目录以及子目录下一定还有.c文件,这个代码是统计当前目录以及子目录下所有.c文件的总行数

人造人 发表于 2018-5-15 21:41:28

Surprise168 发表于 2018-5-15 21:33
还是有些疑问呢!麻烦你了,我这里的不知道为什么就是不正确

Surprise168 发表于 2018-5-15 22:08:22

人造人 发表于 2018-5-15 21:41


{:5_95:}是的,把其他文件移走后正确了,哈哈,终于找到问题了,谢谢你的耐心指导{:5_91:}
页: [1]
查看完整版本: 第一课 动动手 [Error] ld returned 1 exit status