Strcpy_s不能与gcc一起工作
strcpy_s not working with gcc
我有一个c++ 11项目,我添加了一些strcpy_s
方法调用。这在windows上工作,但在gcc上编译时,会出现错误说明没有找到strcpy_s
符号。
我确实添加了
这行 #define __STDC_WANT_LIB_EXT1__ 1
GCC(或者更确切地说,glibc)不支持strcpy_s()
及其同类。有关在哪里可以找到支持它们的库的一些想法,请参阅这里:是否有strcpy_s和/或TR24731-1的免费实现?
strcpy_s
和friends还不是c++的一部分。c++ 17似乎会有这些特性,但目前是否提供这些特性取决于实现。看来glibc没有。
实际上,根据cppreference,只有定义了__STDC_LIB_EXT1__
, __STDC_WANT_LIB_EXT1__
才会起作用。在我的Arch Linux上,它不是。
#ifdef __STDC_LIB_EXT1__
constexpr bool can_have_strcpy_s = true;
#else
constexpr bool can_have_strcpy_s = false;
#endif
您可以使用strncpy
。只要小心一点,它是安全的。
相关文章:
- 如何将英特尔的数学函数库与 gcc 一起使用?
- 当它们不与GCC和CMAKE一起使用时,如何解析未定义的引用
- 与lambda一起使用虚拟继承在初始化列表中捕获此问题的GCC错误
- 可能的 GCC 链接器错误会导致将弱符号和局部符号链接在一起时出错
- ANTLR4-帮助与GCC(GCC)4.4.7 20120313(红帽4.4.7-11)一起使用
- GCC 中的编译器错误,但在将 decltype 与具有尾随返回类型语法的模板化成员函数一起使用时没有 clang
- GCC vs Clang:将功能与-FPIC一起插入
- 如何将 GCC 的 printf 格式属性与 C++11 可变参数模板一起使用?
- 为什么 ccache 不更频繁地与 gcc 一起使用?
- gcc 4.7.3与构造函数一起使用make_shared时出现内部编译器错误
- 将 C++11 正则表达式与 gcc 4.8.2 一起使用时会出现奇怪的结果(但适用于 Boost 正则表达式)
- GCC 一起构建对象和依赖项文件
- 是否有我可以与 GCC 4.9.x 一起使用的 GSL 实现
- 试图让 CUDA 7.5 与 GCC 5.x 一起工作
- 将 AVX 与 GCC 一起使用:__builtin_ia32_addpd256未声明
- 将 AVX 与 GCC 一起使用 - avxintrin.h 缺失
- 将16字节CAS与GCC一起使用时出现未定义的引用链接器错误
- 我可以将英特尔的 TBB 与 gcc 一起使用吗?
- 为什么glut32.lib工作与代码块/gcc,我认为只有*.一个库与gcc一起工作
- Strcpy_s不能与gcc一起工作