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)
打赏 微信扫一扫 微信扫一扫
如何查看云服务器 ECS 公网流量统计总和-linux运维-学派吧
上一篇 2018年11月21日 下午11:48
下一篇 2018年11月21日 下午11:48

相关推荐

  • linux监控工具如何使用?总结监控工具实例用法教程-学派吧

    如果您有服务器咨询问题、购买问题、可以联系我们客服 7271895 690624商祺云-阿里代理、景安代理、西部代理 1、nethogs1)NetHogs是一款开源、免费的,终端下的网络流量监控工具,它可监控Linux的进程或应用程序的网络流量。NetHogs只能实时监控进程的网络带宽占用情况。NetHogs支持IPv4和IPv6协议,支持本地网卡以及PPP…

    2019年1月14日
    2.8K00
  • 宝塔微擎开启redis缓存实战教程

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

    2021年5月30日
    3.2K00
  • win2008 R2中安装MySQL出现ODBC连接器安装错误的解决教程-win教程-学派吧

    这篇文章主要介绍了win2008 R2中php.cn/php/php-tp-inst安装MySQL出现ODBC连接器安装错误,需要的朋友可以参考下 我今天打算在Windows server 2008 R2中安装MySQL,可是总是发现ODBC连接器安装错误,无论我采用MySQL的整体安装包,还是单独的ODBC连接器安装文件!! 最后上网搜索了很久,终于解决了…

    服务器运维 2018年12月2日
    3.3K00
  • 腾讯云对象存储(cos)挂载到centos下-射到本地磁盘目录教程分享

    本文目标 本文旨在利用腾讯云提供的COSFS工具,将腾讯云的对象存储映射到云服务器的本地磁盘目录上。 推荐腾讯云代理商 代理型关联: https://partner.cloud.tencent.com/invitation/5411729459845f8015bc1/100010025276?inviteType=2 前提条件 假设我们已经新建了腾讯云的对象…

    2019年12月6日
    7.8K10
  • 阿里云腾讯云安装管理面板centos宝塔面板安装教程

    2分钟装好面板,一键管理服务器Linux版请确保纯净系统安装(支持CentOS、Ubuntu、Debian、Fedora、Deepin),Web端管理,QQ群及论坛技术支持一键LAMP/LNMP、创建网站FTP、数据库、SSL;安全管理,计划任务,文件管理,PHP多版本共存及切换,一键开启Tomcat环境 Linux面板安装脚本 系统兼容性排序: Debia…

    2018年7月12日
    9.6K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

添加微信
添加微信
分享本页
返回顶部