Linux环境下如何编译和执行c程序教程-linux运维-学派吧

本篇文章给大家带来的内容是介绍Linux环境下如何编译和执行c程序?(详解) 。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

1 单个文件的编译和执行

创建main.c文件,内容如下:

#include <stdio.h>#include <stdlib.h>int main(void){
printf("Hello world!\n");return 0;
};

编译:

gcc -o main main.o

执行:

root@ubuntu:/ybg/python# ./main
Input an integer:10sum=55

2 多个文件的编译和执行
创建sum.c文件,内容如下:

#include <stdio.h>#include <stdlib.h>int sum(int x){int i, result=0;for(i=0; i<=x; i++){
result+=i;
}if(x > 100)
exit(-1);return result;
};

创建main.c文件,内容如下:

#include <stdio.h>#include <stdlib.h>int main(void){int x;
printf("Input an integer:\n");
scanf("%d", &x);
printf("sum=%d\n", sum(x));return 0;
};

编译

gcc -c sum.c -fPIC -o sum.ogcc -c main.c -fPIC -o main.o

生成可执行文件,文件名为main

gcc -o main sum.o main.o

执行程序

./main

执行结果同上

3 使用动态链接库方式

生成动态链接库

gcc sum.o -shared -o sum.so

生成可执行文件,文件名为main

gcc -o main sum.o main.o

执行

./main

如果有以下报错,说明在默认的动态链接库路径下没有找到刚刚生成的sum.so

./main: error while loading shared libraries: sum.so: cannot open shared object file: No such file or directory

执行以下命令,将当前目录添加到动态链接库查找路径环境变量

export LD_LIBRARY_PATH=pwd:$LD_LIBRARY_PATH

再次执行

./main

执行结果同上

4 python调用.so动态链接库

创建test.py文件,内容如下:

import ctypes
so = ctypes.CDLL('./sum.so')print "so.sum(50) = %d" % so.sum(50)

执行

root@ubuntu:/ybg/python# python test.py 
so.sum(50) = 1275

以上就是Linux环境下如何编译和执行c程序?(详解)的详细内容,更多请关注学派吧其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/server/1952.html

(0)
打赏 微信扫一扫 微信扫一扫
云大使的头像云大使
上一篇 2018年11月21日 下午11:48
下一篇 2018年11月21日 下午11:48

相关推荐

  • 宝塔开启安全登录忘记目录如何恢复

    前言 为了提高安全性,当前宝塔新安装的已经开启了安全目录登录,新装机器都会随机一个8位字符的目录名,亦可以在面板设置处修改,如您没记录或不记得了,可以使用以下方式解决 解决方法 登陆SSH终端输入以下一种命令来解决1、查看面板入口:/etc/init.d/bt default2、关闭入口验证:rm -f /www/server/panel/data/admi…

    2018年10月22日
    12.1K00
  • CentOS如何磁盘挂载

    [v_error]注意:本文中的磁盘/dev/xvdb 为作者测试服务器上的命名,在您的服务器中可能是 /dev/sdb /dev/vdb 等等,请按您的磁盘名称修改开源地址[/v_error] mkdir -p /www 1、确认是否有没有分区的磁盘,如下图,没有分区的磁盘是 /dev/xvdb ,在您的服务器中可能是 /dev/vdb 请注意按实际名称修…

    2018年5月6日
    10.5K10
  • Linux7如何设置静态IP的方法教程-学派吧

    这篇文章主要介绍了Centos Linux7设置静态IP的实例的相关资料,需要的朋友可以参考下 如果您有服务器咨询问题、购买问题、可以联系我们客服 7271895 690624商祺云-阿里代理、景安代理、西部代理 Centos Linux7设置静态IP的实例 ## 先进入配置文件的放置位置: cd /etc/sysconfig/network-scripts…

    服务器运维 2019年1月4日
    2.2K00
  • 宝塔微擎开启redis缓存实战教程

    各位看官大家牛年大吉,继上年做了一期微擎开启redis缓存实战教程,有小伙伴们私信或者发帖说能不能提供一篇基于端口多实例的教程,满足!开门见山,风生水起基于多端口实现redis多实例:1、打开面板安装redis,并配置好使用的最大内存,我的机器配置是4G内存,这里选择了512M内存供redis使用,配置好后重启redis(如果是生产环境,请自己斟酌是否可以重…

    2021年5月30日
    3.0K00
  • Windows快速排查系统是否被黑

    一、Windows [v_blue]1.存在隐藏用户或异常用户[/v_blue] 以Windows为例,右键计算机 -> 管理 -> 查看本地用户和组,如果用户或用户组带有$符号,说明该用户/用户组被隐藏,很有可能被黑了。如下截图[v_blue]2.异常进程[/v_blue] 通过任务管理器查看是否存在异常进程,比如phpstudy被黑后可能存在12345.…

    2018年4月2日
    2.3K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部
---------官方优惠叠加渠道折扣:通过我们购买腾讯云/阿里云,价格更低,服务更优。更有专业配置指导与服务。微信同步:18838889666----