博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux环境下c程序的编译和执行
阅读量:5233 次
发布时间:2019-06-14

本文共 1266 字,大约阅读时间需要 4 分钟。

1 单个文件的编译和执行

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

#include 
#include
int main(void){printf("Hello world!\n");return 0;};

 

编译:

gcc -o main main.o

 

执行:

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

 

2 多个文件的编译和执行

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

#include 
#include
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 
#include
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 ctypesso = ctypes.CDLL('./sum.so')print "so.sum(50) = %d" % so.sum(50)

 

执行

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

 

转载于:https://www.cnblogs.com/lasdaybg/p/9817470.html

你可能感兴趣的文章
Java IO流学习总结
查看>>
day22 01 初识面向对象----简单的人狗大战小游戏
查看>>
shell的while循环
查看>>
数组的几种常用方法总结
查看>>
递归函数,二分运算,正则表达式
查看>>
阅读软件工程的问题
查看>>
【Netty】UDP广播事件
查看>>
(4)Numpy+矩阵计算+和生成
查看>>
ttt
查看>>
[置顶] java处理office文档与pdf文件(一)
查看>>
Flutter之内置动画(转)
查看>>
MySql优化相关概念的理解笔记
查看>>
sql索引影响数据存储位置的示例
查看>>
数据库解决方案
查看>>
erlang一些参考资源
查看>>
构建之法阅读笔记06
查看>>
sql server日期时间转字符串
查看>>
备份U盘分区表,未雨绸缪
查看>>
Win32k(3) R0 to R3,键盘鼠标输入
查看>>
numpy之meshgrid和where
查看>>