周梦琦 发表于 2019-7-7 23:37:45

为什么我的属性链接不了,请大神帮忙看一下

ba21 发表于 2019-7-8 00:09:51

上代码

我叫MD 发表于 2019-7-8 16:02:47

你头文件没包含啊,把 a 和 b 的头文件包进去

周梦琦 发表于 2019-7-8 17:02:33

我叫MD 发表于 2019-7-8 16:02
你头文件没包含啊,把 a 和 b 的头文件包进去

能用代码吗不明白你说的

我叫MD 发表于 2019-7-8 17:08:21

我看你把 a 函数 和 b 函数写入了不同的文件中,所以你把 a 函数和 b 函数的头文件包含进去 ,不行你把代码发出来, 给你看看

周梦琦 发表于 2019-7-8 17:11:37

我叫MD 发表于 2019-7-8 17:08
我看你把 a 函数 和 b 函数写入了不同的文件中,所以你把 a 函数和 b 函数的头文件包含进去 ,不行你把代 ...

主函数#include<stdio.h>
void a(void);
void b(void);

int count;

int main()
{
        a();
        b();
        printf("输出结果为%d\n",count);
}
a函数:#include<stdio.h>
extern int count;
void a()
{
        count++;
}
b函数:#include<stdio.h>
extern int count;
void b()
{
        count++;
}

周梦琦 发表于 2019-7-8 17:19:05

我叫MD 发表于 2019-7-8 17:08
我看你把 a 函数 和 b 函数写入了不同的文件中,所以你把 a 函数和 b 函数的头文件包含进去 ,不行你把代 ...

另外我也不知道external函数在windows中怎么使用

我叫MD 发表于 2019-7-8 17:20:49

如果你这三个文件写在一个文件夹下面   

主函数#include<stdio.h>
extern void a(void);         //这里加extern试试
extern void b(void);          //这里加extern试试

int main()
{
      a();
      b();
      printf("输出结果为%d\n",count);
}

周梦琦 发表于 2019-7-8 18:10:32

我叫MD 发表于 2019-7-8 17:20
如果你这三个文件写在一个文件夹下面   

主函数#include


extern 不是为了告诉编译器不要急于报错吗
加上extern以后也是报错
C:\Users\24625\OneDrive\文档\collect2.exe        ld returned 1 exit status

dt3tc 发表于 2019-7-8 21:34:55

楼主把该项目的源代码放到纯英文目录下重新编译试试

我叫MD 发表于 2019-7-8 22:35:13

你还是把3片代码段截图发上来把   发完整的

TCY 发表于 2019-7-9 13:20:54

return 0哪去了?????

周梦琦 发表于 2019-7-10 12:04:13

我叫MD 发表于 2019-7-8 22:35
你还是把3片代码段截图发上来把   发完整的

周梦琦 发表于 2019-7-10 12:04:48

TCY 发表于 2019-7-9 13:20
return 0哪去了?????

没有return 0有关系吗

df3379 发表于 2019-7-10 13:19:25

放完整的源代码上来吧!放在代码框里。

df3379 发表于 2019-7-10 13:24:52

#include<stdio.h>

void a();
void b();
int count;
int main(void)
{
a();
b();
printf("输出:%d\n",count);
return 0;
}

void a()
{
      count++;
}

void b()
{
      count++;
}


这是放在同一个文件里的,运行结果正常

周梦琦 发表于 2019-7-10 13:52:33

df3379 发表于 2019-7-10 13:24
这是放在同一个文件里的,运行结果正常

但是小甲鱼在视频中是分别在三个不同的.c文件中写的啊
你写的我是能明白的,只是不明白小甲鱼讲的内容在我的编译器中不能实现

df3379 发表于 2019-7-10 14:14:39

#include<stdio.h>


void a();
void b();
int count;
int main(void)
{
a();
b();
printf("输出:%d\n",count);
return 0;
}

这是主程序。

#include<stdio.h>
extern int count;
void a()
{
      count++;
}

这是a.c文件

#include<stdio.h>
extern int count;
void b()
{
      count++;
}

这是b.c文件。
http://chuantu.xyz/t6/702/1562739260x2073513012.jpg
输出结果为2

周梦琦 发表于 2019-7-10 14:28:12

{:10_266:}这肯定是我编译器的问题

周梦琦 发表于 2019-7-10 14:28:58

df3379 发表于 2019-7-10 14:14
这是主程序。




你使用的是什么编译器
页: [1] 2
查看完整版本: 为什么我的属性链接不了,请大神帮忙看一下