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

相关推荐

  • 从阿里云域名解析到DNSPod,如何实现 DNS 平滑迁移?

    腾讯云解析 DNSPod 向全网域名提供快速、安全的智能解析服务,拥有精准调度、安全防护、容灾切换等能力,为您全面提升业务可用性、稳定性。 解析记录迁移 导出解析记录 进入后单击导入/导出,并选择导出记录 导出文件类型选择zone,并单击立即导出。 导出完成后重命名文件,添加.zone后缀,如下两图所示: 导入解析记录 添加需要迁移的域名,以dnstest.…

    2026年1月12日
    17000
  • linux中关于echo命令的用法实例教程-学派吧

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法,下面这篇文章主要给大家介绍了关于linux中echo命令用法的相关资料,需要的朋友可以参考学习。 前言 对于初学者来说,掌握一些基本命令的常用用法是必须的。本文列举了echo命令的几个常用用法并加以实例说明,以作回顾、参…

    2019年1月1日
    1.8K00
  • 学派吧-Linux自动分区工具的示例详细介绍-linux教程

    注意:由于相关操作可能会导致数据丢失。 所以,执行操作之前,请务必确保已经通过快照等手段对数据进行有效备份,或明确相关数据丢失无影响。 普通云磁盘 适用系统:兼容线上所有非 IO 优化实例的普通云盘的 Liunx 版本。 使用方法:以 root 身份执行命令:bash auto_fdisk.sh。 适用场景:一键式检测是否有尚未分区的数据盘,并能对其格式化和…

    服务器运维 2018年12月12日
    2.4K00
  • 腾讯云Windows Server 2016 2019 在桌面上显示“我的电脑”

    如果是在Windows Server 2016 2019本地控制台下, 直接按Win(键盘上的微软徽标键)+R, 输入: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 回车后,勾选所需要的桌面图标的名称,确定        

    2022年6月14日
    8.4K30
  • 系统不支持:mysql

    错误位置FILE: F:\www\ThinkPHP\Lib\Core\Db.class.php  LINE: 83 TRACE[13-04-09 15:39:04] F:\www\ThinkPHP\Lib\Core\Db.class.php (83) DbMysql->__construct(系统不支持:mysql)[13-04-09 15:39:04] F…

    服务器运维 2018年4月3日
    3.5K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

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