VSCode编译未定义参考的问题
编译报错:undefined reference to ReadFile…
> Executing task: C/C++: g++.exe build active file <
Starting build...
D:\tool\Dev-Cpp_6.3_TDM-GCC_9.2_Portable\TDM-GCC-64\bin\g++.exe -g C:\Users\sometwo\Downloads\ogldev-master\tutorial04\tutorial04.cpp -lglew32 -lfreeglut -lopengl32 -I"C:\Users\sometwo\Downloads\ogldev-master\Include" -o C:\Users\sometwo\Downloads\ogldev-master\tutorial04\tutorial04.exe
D:/tool/Dev-Cpp_6.3_TDM-GCC_9.2_Portable/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sometwo\AppData\Local\Temp\cco5idD9.o: in function `CompileShaders':
C:/Users/sometwo/Downloads/ogldev-master/tutorial04/tutorial04.cpp:108: undefined reference to `ReadFile(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
D:/tool/Dev-Cpp_6.3_TDM-GCC_9.2_Portable/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/9.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Users/sometwo/Downloads/ogldev-master/tutorial04/tutorial04.cpp:114: undefined reference to `ReadFile(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
collect2.exe: error: ld returned 1 exit status
Build finished with error(s).
The terminal process terminated with exit code: -1.
Terminal will be reused by tasks, press any key to close it.
解决方法
找到ReadFile,按F12转到定义,可以看到是在文件名,拷贝相对路径 Common\ogldev_util.cpp
在.vscode目录下编辑tasks.json文件,在-g参数后添加
"Common\\ogldev_util.cpp",
在Windows下需要多加一个斜杠
报错
g++.exe: error: Common\ogldev_util.cpp: No such file or directory
重新修改为
"..\\Common\\ogldev_util.cpp",
编译通过。