文件列表:Circle.hPoint.hCircle.cppPoint.cppmain.cpp我把编译错误和每个文件内的代码都截图上传了,代码是定义了一个point类和一个circle类,然后可以判断坐标点是否在圆内,也就是...
文件列表:Circle.h Point.h Circle.cpp Point.cpp main.cpp我把编译错误和每个文件内的代码都截图上传了,代码是定义了一个point类和一个circle类,然后可以判断坐标点是否在圆内,也就是简单的把类的实现和声明分开的多文件写法,我的代码和文件一起放到VS2013下可以完美运行,但是在Visual Studio Code下编译就会报错:C:\Users\Glaxy\AppData\Local\Temp\ccA1Y3RJ.o: In function `main':c:/Users/Glaxy/Desktop/test/main.cpp:13: undefined reference to `Point::setPoint(int, int)'c:/Users/Glaxy/Desktop/test/main.cpp:14: undefined reference to `Circle::setCircle(int, int, int)'c:/Users/Glaxy/Desktop/test/main.cpp:16: undefined reference to `Circle::judge(Point&)'collect2.exe: error: ld returned 1 exit status我感觉应该是编译环境的问题我用的是MinGw编译,Visual Studio Code的编译配置如下:{ "version": "0.2.0", "configurations": [ { "name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加) "launchOptionType": "Local", // 调试器启动类型,这里只能为Local "targetArchitecture": "x86", // 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64 "program": "${file}.exe", // 将要进行调试的程序的路径 "miDebuggerPath":"D:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "args": ["blackkitty", "1221", "# #"], // 程序调试时传递给程序的命令行参数,一般设为空即可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false "cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录 "externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台 "preLaunchTask": "g++" // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc } ]}MinGw的路径是对的,我平时编译单文件可以运行,但是多文件就报错。我的Visual Studio Code的编译调试环境都是按照这个帖子搭建的:http://blog.csdn.net/c_duoduo/article/details/51615381我把我所知道的信息都说了,请大家帮我看看到底是哪的问题,之前我以为可能vs code旧版的bug,可是我更新到最新版还是没能解决问题,VS体积太大,非常喜欢小巧的vs code,希望大家能帮我找出问题!
展开