Linux环境下c程序的编译和执行
2024-08-26 15:21:37
1 单个文件的编译和执行
创建main.c文件,内容如下:
#include <stdio.h>
#include <stdlib.h> int main(void){
printf("Hello world!\n");
return ;
};
编译:
gcc -o main main.o
执行:
root@ubuntu:/ybg/python# ./main
Input an integer: sum=
2 多个文件的编译和执行
创建sum.c文件,内容如下:
#include <stdio.h>
#include <stdlib.h> int sum(int x){
int i, result=;
for(i=; i<=x; i++){
result+=i;
}
if(x > )
exit(-);
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 ;
};
编译
gcc -c sum.c -fPIC -o sum.o
gcc -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() =
最新文章
- ASP.NET MVC 视图(三)
- 深入理解DOM节点类型第六篇——特性节点Attribute
- Web API系列(三)统一异常处理
- flume介绍与原理(一)
- 如何自定义wordpress登录界面的Logo
- css3属性之 box-sizing
- 几种C#程序读取MAC地址的方法
- python tornado+mongodb的使用
- jQuery扩展与noConflict的用法-小示例
- [转载]C宏定义的小结
- MySQL中explain的type类型
- go运算符
- ubuntu16 关于root的使用
- Large-Margin Softmax Loss for Convolutional Neural Networks
- IntelliJ IDEA 2016.2 配置Tomcat 运行Web项目
- win32gui.Findwindow(parm1,parm2)查找窗口的句柄方法
- Network-Emulator&#160;Network-Emulator-Toolkit网络模拟器使用详细介绍
- VirtualBox中slitaz系统不能联网
- ZooKeeper 了解
- 9 stark组件 增删改
热门文章
- TensorFlow博客翻译——用TensorFlow在云端进行机器学习
- ThinkPHP3.2.3学习笔记1---控制器
- java jdbc 与mysql连接的基本步骤
- Python添加自己的模块路径
- _bzoj1007 [HNOI2008]水平可见直线【单调栈】
- 【洛谷2304_LOJ2134】[NOI2015]小园丁与老司机(动态规划_网络流)
- zoj3699Dakar Rally
- SpringBoot_自定义配置属性
- 解决webstromm标签高亮问题
- mysql 5.7安装过程中,初始化的问题