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

相关推荐

  • Linux实例负载高问题排查和异常处理

    问题描述 在您使用ECS实例过程中,可能会遇到实例系统负载较高的情况,负载过高,可能会引发一系列异常问题,简单说明如下: CPU使用率或负载过高:一般来说,当CPU使用率≥80%时,定义为CPU使用率过高。CPU使用率持续过高,可能会导致实例运行速度变慢,自动关机或重启、无法登录等问题。 带宽使用率过高:一般来说,带宽使用率≥当前带宽80%时,定义为带宽使用…

    2024年9月28日
    1.6K00
  • 腾讯阿里云登录宝塔面板提示”请使用正确的入口登录”或 404

    相关问题: 原因: 使用云服务器连接宝塔面板时,提示”请使用正确的入口登录面板”或”404 NOT FOUND”,是由于安全入口校验失败。 当前宝塔已开启安全入口登录,新装机器都会随机生成 8 位字符的安全入口名称。若您忘记安全入口,可以使用以下方式解决: 解决方案: 安全提示 关闭安全入口将使您的面板登录地址…

    2026年1月5日
    28500
  • 学派吧-win2008中关于如何设置计划任务执行PHP文件方法的详解-windows教程

    这篇文章主要介绍了win2008中设置计划任务执行PHP文件的方法,需要的朋友可以参考下 在网上找了些WINDOWS执行PHP的计划任务的方法,有一个写得很全,可惜在我这竟然没通过。最后不得不综合各门派的方法,才能在我这运行成功1、写一个PHP程序,命名为test.php,内容如下所示: 代码如下: <? $fp = fopen("test.…

    服务器运维 2018年12月10日
    3.1K00
  • (centos)linux如何查看和修改系统时间

    在linux中一般会使用date命令来查看当前系统时间,使用date -s命令来修改系统时间。 如何查看当前系统时间? date命令是用来显示系统时间的,可以按照指定格式来显示日期,如果只键入date则以默认格式显示当前系统时间。【视频教程推荐:linux教程】 例: [root@localhost ~]# date Fri Mar 1 10:36:45 P…

    2019年3月13日
    6.8K00
  • Linux vsftpd连接报错:500 OOPS: vsftpd的解决办法详解-学派吧-

    问题现象 云服务器 ECS Linux 系统用 vsftpd 搭建的 FTP 服务,客户端连接时提示报错 “500 OOPS: vsftpd: refusing to run with writable root inside chroot()” 处理办法 1. 在服务器上修改Vsftpd的配置文件vsftpd.conf vim /etc/vsftpd/vs…

    2019年1月1日
    3.3K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

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