【问题标题】:VSCode not importing functions from other files in C languageVSCode不从C语言的其他文件中导入函数
【发布时间】:2021-05-13 07:01:39
【问题描述】:

我正在学习 C 课程并达到我们#include "myfile.h" 的地步 好消息:VSCode 找到“myfile.h”并可以从中提取变量,例如int myvar=10;

坏消息:VSCode 似乎无法识别“myfile.c”中的函数定义,因此看到了 extern in myfunction() 但未定义。 这导致以下结果

int i = myfunction();

编译错误:未定义对“myfunction”的引用;

如何让 VSCode 识别和使用“myfile.c”?

【问题讨论】:

  • 您确定 myfile.c 已添加到项目中吗?
  • 链接器好像找不到myfile.c,如何编译程序?
  • @MrBens 链接器从不使用 .c 文件。编译器必须将 .c 文件编译为目标文件(.obj 或 .o 取决于工具链),然后链接器可以链接它。目标文件也可以分组在一个库文件中,然后由链接器使用。
  • @fpiette 是的,我的意思是 myfile.o。

标签: c visual-studio-code


【解决方案1】:

在 :: 中找到答案 undefined reference error in VScode

基本上,我必须一次编译所有文件。这需要我进入 tasks.json 文件并将其从 ${file} 修改为 ${workspaceFolder}\*.c

这在 :: 中有更好的解释 https://code.visualstudio.com/docs/cpp/config-linux

【讨论】:

  • 很好地找到了答案。我相信混淆源于不理解简单地包含"...h" 文件并不能使其包含声明的函数可用。为了使函数可用,您必须链接到一个包含从函数定义编译的机器代码的目标文件。也许你已经知道了。很多时候,在尝试使用 IDE 而没有首先了解在命令行上编译和链接最终可执行文件所需的选项时,情况会更加复杂。 (更复杂的是需要用 VS 破解 .json 文件)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-18
  • 1970-01-01
相关资源
最近更新 更多