VSCode中C程序编译报错:找不到头文件xlsxwriter.h
问题描述
在VSCode中编写C程序时遭遇编译错误,提示“No such file or directory”。源代码与xlsxwriter.h头文件处于同一目录,已将头文件引入方式从<>改为"",但问题仍未解决。
源代码:
#include "xlsxwriter.h" int main() { lxw_workbook *workbook = workbook_new("hello_world.xlsx"); lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL); worksheet_write_string(worksheet, 0, 0, "Hello", NULL); worksheet_write_number(worksheet, 1, 0, 123, NULL); workbook_close(workbook); return 0; }
自动生成的tasks.json:
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc.exe build active file", "command": "C:\\cygwin64\\bin\\gcc.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "C:\\cygwin64\\bin" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "compiler: C:\\cygwin64\\bin\\gcc.exe" } ] }
解决方法
修正编译工作目录
当前tasks.json的cwd设为C:\\cygwin64\\bin,gcc会从此目录开始查找头文件,而你的头文件在源代码目录,导致查找失败。可以直接移除cwd配置(默认使用当前文件目录),或者将其改为"${fileDirname}":"options": { "cwd": "${fileDirname}" }显式指定头文件搜索路径
若不想修改cwd,可在编译参数中添加-I${fileDirname},告知gcc在当前文件目录下查找头文件,将该参数加入args数组:"args": [ "-fdiagnostics-color=always", "-g", "-I${fileDirname}", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ]链接xlsxwriter库
编译xlsxwriter程序必须链接对应库文件,否则后续会出现未定义引用错误。在args末尾添加-lxlsxwriter参数:"args": [ "-fdiagnostics-color=always", "-g", "-I${fileDirname}", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe", "-lxlsxwriter" ]
内容的提问来源于stack exchange,提问作者Jeyeffkay
相关产品推荐
相关产品推荐

