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

相关推荐

  • 关于win2008 R2与sql2005、2008运行asp的时候速度缓慢的解决方法教程-windows教程-学派吧

    这篇文章主要介绍了win2008 R2与sql 2008运行asp的时候速度缓慢的解决方法,需要的朋友可以参考下 在以SQL Server 2005数据库为后台的ASP网站访问速度慢,情况如下:一个服务器上的两个ASP网站,一个访问很快,一个很慢。 原因排查的思路与步骤: 首先在我电脑上依次打开这两个网站,一个两三秒就打开了,另一个需要10秒钟。看来问题情况…

    服务器运维 2018年12月2日
    2.5K00
  • 学派吧-linux/centos下zip文件解压出现乱码怎么办?-linux教程

    本篇文章主要介绍了解决linux下zip文件解压乱码问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 原因 由于zip格式并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。 解决方案一 使用7z解压。 安装p7zip和c…

    服务器运维 2018年12月12日
    2.2K00
  • 在Linux上为用户设置Http代理教程-学派吧

    为了提高安全性,大多数组织、公司和机构使用网络上的代理服务器访问互联网。使用代理服务器,可以根据需要限制每个用户的访问级别。在本篇文章中,我们将介绍如何在只有终端访问权限的情况下为Linux中的用户启用HTTP代理。 启用HTTP代理 登录到要为其启用HTTP代理的Linux系统上的用户。现在在home目录中编辑.bashrc或.bash_概要文件,并在文件…

    2019年3月23日
    3.0K00
  • nginx配置location教程及rewrite规则教程

    nginx配置location教程及rewrite规则教程 location正则写法 实际使用建议 Rewrite规则 flag标志位 if指令与全局变量 if判断指令 全局变量 常用正则 rewrite实例 location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A…

    服务器运维 2018年10月11日
    1.9K00
  • IO缓冲区管理的实例详解教程分析-linux教程

    如果您有服务器咨询问题、购买问题、可以联系我们客服 7271895 690624 商祺云-阿里代理、景安代理、西部代理 Linux系统IO中write原型为 ssize_t write(int filedes, const void * buff, size_t nbytes) ; 当调用write写数据的时候,调用完成后write直接返回,但是磁盘是个慢速…

    服务器运维 2019年1月17日
    2.9K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

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

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