鱼C论坛

 找回密码
 立即注册
查看: 5151|回复: 14

[已解决]s1e32链接属性问题

[复制链接]
发表于 2022-4-15 16:42:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第一个文件:
#include <stdio.h>

void a(void);
void b(void);
void c(void);

int count;

int main(void)
{
        a();
        b();
        c();
        b();
       
        printf("小郭今天一共被抱了%d次!\n", count);
       
        return 0;
}

第二个文件:
extern int count;

void a(void)
{
        count++;
}

请问这俩个文件如何在DevC++中成功运行,现今以创一个新的项目,里面分别分别包含俩个文件的代码但是有以下报错,然后跳出貌似是devC++的源代码
C:\Users\12075\Desktop\FishC\作用域和连接属性\text.4.o        text.4.c:(.text+0x0): multiple definition of `a'
C:\Users\12075\Desktop\FishC\作用域和连接属性\text3.o        text3.c:(.text+0x0): first defined here
C:\Users\12075\Desktop\FishC\作用域和连接属性\collect2.exe        [Error] ld returned 1 exit status
C:\Users\12075\Desktop\FishC\作用域和连接属性\Makefile.win        recipe for target 'Project1.exe' failed
最佳答案
2022-4-15 19:43:28
#include <stdio.h>
#include "b.c"

void a(void);


int count;

int main(void)
{
        a();
count++;
       
        printf("小郭今天一共被抱了%d次!\n", count);
       
        return 0;
}

b.c
extern int count;

void a(void)
{
        count++;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-4-15 16:44:31 | 显示全部楼层
另外,已经试过把abc的声明另外创一个文件包含在同一个文件夹,也试过在第一个主文件夹里面加入#include < b.c >,还是报出相同的错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 16:49:18 | 显示全部楼层
第一个文件前面改成
extern void a(void);
extern void b(void);
extern void c(void);
另外你只有a()有定义?b()和c()都没定义?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 16:49:42 | 显示全部楼层
主文件加载别的文件。
参考:
https://blog.csdn.net/qq_27664167/article/details/82859852
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-15 19:23:25 | 显示全部楼层
风车呼呼呼 发表于 2022-4-15 16:49
第一个文件前面改成

另外你只有a()有定义?b()和c()都没定义?

有哇,我前面就有定义了,我现在改成这个还是报错,大佬帮我看看
第一个文件
#include <stdio.h>

extern void a(void);
extern void b(void);
extern void c(void);

extern int count;

int main(void)
{
        a();
        b();
        c();
        b();
       
        printf("小郭今天一共被抱了%d次!\n", count);
       
        return 0;
}
第二个文件
int count;

void a(void)
{
        count++;
}
第三个文件
void a();
void b();
void c();

void a()
{
        count++;
}

void b()
{
        count++;
  }
void c()
{
        count++;
        }

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-15 19:24:14 | 显示全部楼层
ba21 发表于 2022-4-15 16:49
主文件加载别的文件。
参考:
https://blog.csdn.net/qq_27664167/article/details/82859852

这个我有查到过,还是搞不定
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 19:29:29 From FishC Mobile | 显示全部楼层
一般包含头文件,你怎么包含源文件啊?b.c这个文件是不是和你的第一个文件在一个目录里,在一个目录就用#include "b.c"。推荐你直接把b.c的代码放在头文件b.h里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 19:31:21 | 显示全部楼层
znuxc 发表于 2022-4-15 19:23
有哇,我前面就有定义了,我现在改成这个还是报错,大佬帮我看看
第一个文件
#include

你这a()怎么在第二个和第三个文件都写了定义啊。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 19:31:24 From FishC Mobile | 显示全部楼层
znuxc 发表于 2022-4-15 19:23
有哇,我前面就有定义了,我现在改成这个还是报错,大佬帮我看看
第一个文件
#include

你把这些文件名写详细点,文件比较多的话尽量创建一个工程来编译,把那些文件都放在工程里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 19:32:27 From FishC Mobile | 显示全部楼层
你这个a函数还重载了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-15 19:43:28 | 显示全部楼层    本楼为最佳答案   
#include <stdio.h>
#include "b.c"

void a(void);


int count;

int main(void)
{
        a();
count++;
       
        printf("小郭今天一共被抱了%d次!\n", count);
       
        return 0;
}

b.c
extern int count;

void a(void)
{
        count++;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-15 20:43:08 | 显示全部楼层

刚刚打的跟你的一模一样,还是报错,会不会是创建工程的时候出现了问题,能细说下创建工程的流程吗,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-15 20:43:58 | 显示全部楼层
zzxhh628 发表于 2022-4-15 19:32
你这个a函数还重载了?

哦哦,我已经改掉啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-15 20:44:28 | 显示全部楼层
风车呼呼呼 发表于 2022-4-15 19:31
你这a()怎么在第二个和第三个文件都写了定义啊。。。

改了改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-15 20:51:09 | 显示全部楼层

搞懂了搞懂了,建立项目的时候错了,谢谢大佬!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 02:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表