玩转centos7(3)--从编程开始

是的,面对全新的centos7的世界,我们选择从编写程序作为切入点,不要纠结了,拿起你那牛逼的电脑,动起手来吧

-------------------------------------------------------以后的练习将在xshell环境下--------------------------------------------------------------

在用户主目录下新建一个目录“linux_c”作为C语言编程练习的工作区(工作区是git里的叫法)


打开vi,编写一个简单的C程序。那么问题来了,在linux里我们怎样编译运行我们的C程序呢,这就需要用到linux世界里最强大的编译器gcc

运行:gcc first.c -o first      此时查看当前目录就会发现出现了可执行文件first,执行可执行文件first:./first  便可以看到运行结果

这是,你可能就会对gcc产生好奇心了,那么gcc怎么使用呢?

---------------------------------------------------------------------gcc用法-----------------------------------------------------------------------------

最常用的方法:gcc  源文件  -o 可执行文件名       其中“-o”参数意为gcc最终产生的结果文件

还可以根据C程序的编译过程:预编译,编译,汇编,链接  分步执行gcc


各项参数含义自行百度

-------------------------------------------------------------------函数库的使用----------------------------------------------------------------------------

C语言是由变量和函数组成的,常用的函数我们常常将其集成函数库。函数库分为静态函数库和动态函数库(区别自行百度),那么问题又来了,怎样使用gcc使用函数库

我们以最基础的一个小程序“求两个数的最大公约数”为例

源程序如下:

/*hanshu.c*/

/* 功能:返回正整数m和n的最大公约数*/
unsigned gcd ( unsigned m,unsigned n )
{
unsigned temp;
if (m<n)
{
temp=m;
m=n;
n=temp;
}
if ( m % n == 0)
{
return n;
}
else
{
return gcd ( n,m % n) ;
}
}

/*zhu.c*/

#include <stdio.h>
unsigned gcd ( unsigned,unsigned ) ;
int main( void )
{
unsigned m,n;
printf("请输入两个正整数:");
scanf("%u%u",&m,&n);
printf("%u与%u的最大公约数为:%u\n",m,n,gcd ( m,n ) );
return 0;
}



1.st静态函数库

在这里我们需要把hanshu.c制作成静态函数库


你会看到如此多的命令,其实实际命令只有四行,请仔细找出我所犯的错误!

这是问题来了,由于源程序里边有汉字,而我安装的时候选择的是英文模式,所以我现在要解决语系的问题

---------------------------------------------------------------------增加中文语系--------------------------------------------------------------------------------

在以往的centos里是需要修改这个配置文件 /etc/sysconfig/i18 的,而在centos7里边需要修改这个/etc/locale.con

将LANG="en_US.UTF-8" 换成 LANG="zh_CN.UTF-8"编辑保存wq即可,重启系统
-------------------------------------------------------继续我们的gcc---------------------------------------------------------------
将文件制作成动态函数库

为什么出不来运行结果呢?错误提示告诉我们找不到共享文件,这是怎么回事呢?

什么?没有查找文件locate这个命令?没关系,没有的话我们就安装。先找包,在安装

安装完成后输入updated  即可使用locate

可以看到动态函数库实在lib目录下的,但是此时运行可执行文件还是会找不到的,这时应该首先想到一个名词:环境变量
-------------------------------------------------环境变量-------------------------------------------------------------
Linux是不会主动找lib路径的,只会找系统路径,我们查看一下系统路径

结果非常肯定,/usr/lib没有在系统变量即linux自动搜索的路径里
解决方案有两个:
1.st 将库放到系统路径

成功解决
2.st在执行可执行文件前,先敲一句:export LD_LIBRARY_PATH=/usr/lib
LD_LIBRARY_PATH是linux系统中一个非常重要的环境变量。
linux会从这个环境变量给定的路径去搜索shared libraries,所以如果你的.so文件所在的path没有加到LD_LIBRARY_PATH中,那么所有需要这个so的程序就无法运行

----------------------------------------------------------------------------------------The End--------------------------------------------------------------------------------------

gcc就介绍到这里,你可能发觉我的思路了,就是以C语言编程为线索,主要是学习centos7.下一节我们将认识程序调试器gdb

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值