c/c++语言开发共享对memcpy_s的未定义引用

我正在尝试修复对memcpy_s()错误的未定义引用。 我在我的文件中包含了string.hmemcpy()函数运行正常,我也尝试过包含memory.h 。 我在x64 Windows 7上并使用gcc 4.8.1进行编译。

 #include  #include  #include  void doMemCopy(char* buf, size_t buf_size, char* in, int chr) { memcpy_s(buf, buf_size, in, chr); } 

buf内存已在main函数中分配,该函数调用doMemCpy(buf, 64, in, bytes)in是从标准输入读取的字符串

来自cmd终端的确切错误:

未定义引用“memcpy_s”collect2.exe:错误:ld返回1退出状态

    我从来没有用过这个,但AFAIK,你需要添加

     #define __STDC_WANT_LIB_EXT1__ 1 

    之前

     #include  

    使用memcpy_s()

    据我所知,GCC 4.8不包括函数memcpy_s或任何其他_s边界检查函数。 这些function在ISO 9899:2011附录K中定义,它们是可选的实施。 在使用它们之前,您必须检查是否定义了__STDC_LIB_EXT1__

    这些function最初由微软实施,许多方面反对将它们纳入标准。 我认为主要的反对意见是函数完成的error handling涉及在线程之间共享的全局回调句柄,但它们也非常低效。

    Carlos O’Donell和Martin Sebor将在附录K – Bounds Checking Interfaces的更新现场体验中进一步阅读。

      以上就是c/c++开发分享对memcpy_s的未定义引用相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560012.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐