c - 链接中的多重定义
问题描述
我是链接的初学者,假设我有两个 .c 文件
file1.c 是
#include <stdio.h>
#include "file2.c"
int main(int argc, char *argv[])
{
int a = function2();
printf("%d",a);
return 0;
}
和 file2.c 是
int function2()
{
return 2018;
}
当我编译时,有一个链接器错误,它是function2的多个定义,但我只在file2.c中定义了一次函数?
解决方案
尝试这样的事情:
#include <stdio.h>
#include "file2.h"
int main(int argc, char *argv[])
{
int a = function2();
printf("%d",a);
return 0;
}
文件2.h:
extern int function2(void);
和 file2.c 是
#include "file2.h"
int function2(void)
{
return 2018;
}
然后将其链接在一起。
推荐阅读
- mysql - SQL 查询:奇怪的 SUM 行为
- node.js - nodeJS和expressJS中的Bootstrap问题
- ruby-on-rails - 如何替换rubyracer javascript运行时
- python - 在 boto 中将 python 函数转换为 AWS Lambda 处理程序
- python - 在 pandas for python 中使用布尔过滤时选择要显示的列
- arangodb - 计算两个节点之间的跳数并识别层次图中最低节点的方法
- airflow - 如何阻止 Airflow 记录连接字符串?
- javascript - 正则表达式防止同一字符连续出现超过 3 次
- r - 根据另一个 txt 文件对数据框列进行排序
- list - Dart list.take - 错误:输入“SubListIterable”
' 不是 List 类型的子类型