本文摘自PHP中文网,作者青灯夜游,侵删。
本篇文章给大家带来的内容是介绍Linux环境下如何编译和执行c程序?(详解) 。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。1 单个文件的编译和执行
创建main.c文件,内容如下:
1 2 3 | # include <stdio.h># include <stdlib.h>int main(void){
printf( "Hello world!\n" ); return 0;
};
|
编译:
执行:
1 2 | root@ubuntu:/ybg/python# ./main
Input an integer:10sum=55
|
2 多个文件的编译和执行
创建sum.c文件,内容如下:
1 2 3 4 5 | # 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文件,内容如下:
1 2 3 4 5 | # 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;
};
|
编译
1 | gcc -c sum.c -fPIC -o sum.ogcc -c main.c -fPIC -o main.o
|
生成可执行文件,文件名为main
执行程序
执行结果同上
3 使用动态链接库方式
生成动态链接库
1 | gcc sum.o -shared -o sum.so
|
生成可执行文件,文件名为main
执行
如果有以下报错,说明在默认的动态链接库路径下没有找到刚刚生成的sum.so
./main: error while loading shared libraries: sum.so: cannot open shared object file: No such file or directory
执行以下命令,将当前目录添加到动态链接库查找路径环境变量
1 | export LD_LIBRARY_PATH=pwd: $LD_LIBRARY_PATH
|
再次执行
执行结果同上
4 python调用.so动态链接库
创建test.py文件,内容如下:
1 2 | import ctypes
so = ctypes.CDLL( './sum.so' ) print "so.sum(50) = %d" % so.sum(50)
|
执行
1 2 | root@ubuntu:/ybg/python# python test.py
so.sum(50) = 1275
|
以上就是Linux环境下如何编译和执行c程序?(详解)的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
如何理解按量付费云盘和可用区 faq
Linux 怎么解压文件
Linux如何打开.bin文件
详解Linux下“/”和“~”的区别
Linux如何删除文件
Linux不常用却很有用的命令
Linux查看进程命令是什么?
Linux <什么意思
在 Linux 中查询 cpu 的核数
Linux删除文件的6种方法(总结)
更多相关阅读请进入《Linux》频道 >>
转载请注明出处:木庄网络博客 » Linux环境下如何编译和执行c程序?(详解)