问题:

使用VScode写C++,自定义了头文件,编译时一直报错,错误信息如下:

e:/Project/VSCODE/C++/library/test.cpp:7: undefined reference to `sssp(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char)'
collect2.exe: error: ld returned 1 exit status

一开始看了网上的各种解决途径,说明是下面这种原因,需要更换编译器版本

此错产生原因为:c++11与旧的c++库函数实现存在差异,当本地的c++代码动态库为旧版本c++库所实现,而编译器g++5,gcc5将其解释为std::__cxx11,就会出现未定义错误,那么需要指定编译器的版本为g++4,gcc4,再进行编译时就不会发生上述问题,

看了好多都是这么说,感觉和我的有些不同,就没有按照这样的方法修改

我的问题应该是自定义头文件引起的,后面在网上找来找去,终于找到解决问题的方法 

解决:

在c_cpp_properties.json文件中,将头文件所在的路径添加到includePath中,如下:

在tasks.json中配置要让vscode编译cpp源文件,并让main函数调用。其中,-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名

 

在配置文件中添加上面的信息后,再编译就不再报错

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐