我的源码是:
#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#include <string.h>
int main(void){
char source[]="Cao Ni Ma";
char destination[50];
strcpy_s(destination,sizeof(destination),source);
printf("%s",destination);
return 0;
}
我的编译+连接命令是gcc -o 文件名 文件名.c
ubuntu版本是14.10 gcc版本是4.8
报错:undefined reference to strcpy_s
第1个回答 推荐于2018-04-13
strcpy_s是VC新版本的函数, 不是标准库函数, 把后面的_s去掉.追问
我就要用strcpy_s 怎么办?
追答那你就用VC的新版本吧. strcpy_s只是把字符串从原来的\0结尾的字符串改成带长度的字符串. 你只要操作正确, 是安全的.
追问如何在ubuntu下用vc的新版本呢
追答不清楚VS能不能在linux下运行啊. 你就非死板着用这个函数? 它不是标准库函数!
你是为什么非要死板着去用安全函数? 你是不会改原码还是怎么?
第2个回答 推荐于2016-02-16
改成这个试一试:
strcpy(destination, source);
strcpy_s是VC中的,不是标准C里面的。追问
strcpy(destination, source);
strcpy_s是VC中的,不是标准C里面的。追问
不要这样 就要那个带s的
追答那你自己根据这个函数的原理,自己写一个自定义的。或者换Windows平台使用VS。
本回答被提问者采纳第3个回答 2015-04-12
看看是否包含对应的头文件,或者你把strcpy_s改为strcpy试试
第4个回答 2015-04-12
源代码呢竟然消失了