博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下执行strlwr函数出错:ld returned 1 exit status
阅读量:6993 次
发布时间:2019-06-27

本文共 1152 字,大约阅读时间需要 3 分钟。

执行strlwr函数时报错。源程序例如以下:

#include
#include
void main(){ char s[10]={"CHINA"}; printf("%s\n",strlwr(s)); return 0;}
报错内容例如以下:
eg6527a.c: In function ‘main’:
eg6527a.c:8:2: warning: ‘return’ with a value, in function returning void [enabled by default]  return 0;  ^In file included from eg6527a.c:3:0:eg6527a.c: At top level:/usr/include/strlwr.h:1:14: warning: ‘strlwr’ used but never defined [enabled by default] static char *strlwr(char *s);              ^/tmp/cc6LXD8t.o: In function `main':eg6527a.c:(.text+0x79): undefined reference to `strlwr'collect2: error: ld returned 1 exit status
查找一下原因,原来是兼容性问题strlwr、strupr函数不是标准的C函数库,仅仅能在VC中使用,

linux gcc 下须要自定义这些函数。

详细做法例如以下:

自己写一个strlwr.h头文件,内容例如以下:

char *strlwr(char *s){ char *str; str = s; while(*str != '\0') {  if(*str >= 'A' && *str <= 'Z') {     *str += 'a'-'A'; } str++; } return s; }
将其保存在/usr/include文件夹下

再改动源文件为:

#include
#include
#include
void main(){ char s[10]={"CHINA"}; printf("%s\n",strlwr(s)); return 0;}
此时再次执行程序 gcc -o 6527a 6527a.c

生成可运行文件6527a

执行该文件     ./6527a

结果为:china  

将字符串“CHINA”转换为:"china"

转载地址:http://dgivl.baihongyu.com/

你可能感兴趣的文章
DEDECMS会员注册如何配置邮箱发送邮件功能
查看>>
Terracotta Express Model 和 Terracotta Customized Model
查看>>
贪心,POJ(2709)
查看>>
ES5 Object.create 方法
查看>>
Tomcat : IOException while loading persisted sessions: java.io.EOFException
查看>>
android 第一次作业
查看>>
Gitlab_ansible_jenkins三剑客③Ansible的安装及使用
查看>>
Delphi中BitBlt函数实现屏幕对象抓图
查看>>
ASCII码字符对照表
查看>>
2013年前端校园招聘经历
查看>>
列表相关元素及其属性
查看>>
windows 下android react native详细安装配置过程
查看>>
前端模块化详解
查看>>
JavaScript高级程序设计(第三版)学习笔记8、9、10章
查看>>
C++里调用C函数
查看>>
POJ2100 Graveyard Design【尺取法】
查看>>
查询时异步刷新问题--用到了ajax
查看>>
0-0 Linux安装在VMvare虚拟机上
查看>>
博客导航
查看>>
javascript:DOM自定义属性的妙用
查看>>