为什么将我的cpp文件与libstdc ++链接会期望任何C函数的前向声明,而与libc ++链接却没有问题?

问题描述

我正在使用QNX SDP 7.0,它具有一个称为QCC的c ++编译器,实际上是g ++ 5.4.0。

仅当我使用-stdlib = libstdc ++标志编译并链接我的c ++文件时,我看到在cpp源文件中进行的C函数调用会抛出“未在此范围内声明”错误,如下所示。

keyvalue.cpp:33:39:错误:未在此范围中声明'memset'
memset(_value,0,NVM_MAX_GET_CONfig); ^ keyvalue.cpp:在构造函数'nvm :: keyvalue :: keyvalue(std :: unordered_mapstd :: __ cxx11 :: basic_string &)':keyvalue.cpp:38:39:错误: 未在此范围内声明'memset'memset(_value,0, NVM_MAX_GET_CONfig);

如果我使用-stdlib = libc ++,则看不到任何编译问题。

任何需要我做的关于链接libstdc ++的特殊想法

extern“ C” {// c函数的前移}

在我的cpp文件中可以正确编译和链接吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)