C++ VScode 自定义头文件报错,undefined reference to std::__cxx11::

问题:

使用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参数紧接着就是库名

 

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值