linux下执行strlwr函数出错:ld returned 1 exit status
2023-09-14 09:08:00 时间
执行strlwr函数时报错。源程序例如以下:
#include<stdio.h> #include<string.h> 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<stdio.h> #include<string.h> #include<strlwr.h> void main() { char s[10]={"CHINA"}; printf("%s\n",strlwr(s)); return 0; }
此时再次执行程序 gcc -o 6527a 6527a.c
生成可运行文件6527a
执行该文件 ./6527a
结果为:china
将字符串“CHINA”转换为:"china"
相关文章
- 利用CloudIDE当做简单linux环境,执行简单python工程任务
- 如何让Linux定时任务crond以秒为单位执行(如每隔3秒)
- 在linux下crontab不执行原因排查
- fail2ban[防止linux服务器被暴力破解]
- Linux——查看系统硬件信息
- linux使用shell执行一个Python文件
- linux:ubuntu21.04安装maven(maven 3.8.2)
- ubuntu21.04(linux):为chrome安装vue-devtools(6.0.0 beta 14)调试插件
- 【学习总结】快速上手Linux玩转典型应用-第6章-linux常用命令讲解
- linux环境下执行RF测试脚本
- linux 统计命令执行后的行数或者统计目录下文件数目
- Linux环境下$开头的相关变量的含义
- Linux if else条件语句详解
- linux终端中如何将多行shell脚本通过管道执行
- linux shell脚本的执行方式与区别
- linux查看crontab服务执行日志
- [Linux]服务管理:RPM包, 源码包
- linux学习:虚拟机VMware安装CentOS 7.4的方法
- 【Linux 内核 内存管理】物理内存组织结构 ② ( 内存模型 | 平坦内存 | 稀疏内存 | 非连续内存 | 内存管理系统三级结构 | 节点 Node | 区域 Zone | 页 Page )
- 【Linux 内核 内存管理】munmap 系统调用源码分析 ② ( do_munmap 函数执行流程 | do_munmap 函数源码 )
- 【Linux 内核 内存管理】mmap 系统调用源码分析 ⑤ ( mmap_region 函数执行流程 | mmap_region 函数源码 )
- 【Linux 内核 内存管理】优化内存屏障 ① ( barrier 优化屏障 | 编译器优化 | CPU 执行优化 | 优化屏障源码 barrier 宏 )
- 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )
- linux之多进程fork:进程通信
- linux crontab 实现每秒钟执行
- Mac解压Linux平台tar包报错:tar: Error reading Truncated input file
- LINUX设备驱动程序的注意事项(两)建设和执行模块
- 使用 Linux Centos Docker 安装 2Bizbix
- Linux SSH & SCP命令
- Linux设置固定IP
- 在Linux中三种让crontab每秒执行任务的方法
- Linux系统如何查看nginx安装目录
- 一文教你如何在Linux系统上搭建samba文件共享服务器