快速进入网站,wordpress后台相应慢,wordpress微商,个人云平台目录 一、问题描述二、问题原因三、解决方法四、扩展五、通过CMake进行配置 一、问题描述 VS Code中主程序C文件引用了另一个.h头文件#xff0c;编译时报错找不到函数 主程序 main.c
#include stdio.h
#include sumaa.hint main(int, char**){printf(编译时报错找不到函数 主程序 main.c
#include stdio.h
#include sumaa.hint main(int, char**){printf(Hello, from aaa!\n);printf(Hello, %d, sumAA(11, 22));
}工具文件 sumaa.h
int sumAA(int a, int b);实现文件 sumaa.c
#include stdio.h
#include sumaa.hint sumAA(int a, int b)
{return ab;
}运行编译报错
Starting build...
C:\msys64\mingw64\bin\gcc.exe -fdiagnostics-coloralways -g D:\uida0269\Desktop\aaa\main.c -o D:\uida0269\Desktop\aaa\main.exe
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\uida0269\AppData\Local\Temp\ccOyf8me.o: in function main:
D:/uida0269/Desktop/aaa/main.c:6: undefined reference to sumAA
collect2.exe: error: ld returned 1 exit statusBuild finished with error(s).二、问题原因
编译报错时执行的命令简化如下
gcc.exe -g main.c所引用的 sumaa.c 并没有被包含在编译选项中
三、解决方法 修改 .vscode目录下的 task.json args中的 ${file} 表示当前打开的文件就是 main.c我们在后面再加一个 sumaa.c这样的
args: [-fdiagnostics-coloralways,-g,${file}, sumaa.c,-o,${fileDirname}\\${fileBasenameNoExtension}.exe
],编译通过。
Hello, from aaa!
Hello, 33四、扩展
如果引用了多个文件呢不能一个个往里加吧 改为*.c
args: [-fdiagnostics-coloralways,-g,*.c,-o,${fileDirname}\\${fileBasenameNoExtension}.exe
],验证过也是OK的
五、通过CMake进行配置
具体的操作步骤暂时不贴了直接给出配置代码
CMakeLists.txt
cmake_minimum_required(VERSION 3.0.0)
project(aaa VERSION 0.1.0 LANGUAGES C)
file(GLOB SOURCES *.c)add_executable(aaa ${SOURCES})set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)这样配置后用 CMake 运行也是OK的。