【Linux】编译C语言文件(-o -lpthread)
在gcc中使用-o编译
对于一个一般的程序,直接使用gcc <C语言文件名> -o <编译后生成的文件名>
即可,例如以下程序:
// cpu.c
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>int main(int argc,int *argv[]){if(argc != 2){fprintf(stderr,"need parameter\n");exit(1);}char *str = argv[1];for(int i = 0;i < 4;i++){printf("%s\n",str);sleep(1);}return 0;
}
编译命令:gcc cpu.c -o cpu
(这个警告不重要)之后就会生成可执行文件cpu
,我们可以使用./cpu
运行它。
额外参数 -lpthread
对于含有<pthread.h>的程序,例如下面的:
// threads.c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>volatile int counter = 0;
int loops;void *worker(void *arg) {int i;for (i = 0; i < loops; i++) {counter++;}return NULL;
}int main(int argc, char *argv[]) {if (argc != 2) {fprintf(stderr, "usage: threads <value>\n");exit(1);}loops = atoi(argv[1]);pthread_t p1, p2;printf("Initial value : %d\n", counter);pthread_create(&p1, NULL, worker, NULL);pthread_create(&p2, NULL, worker, NULL);pthread_join(p1, NULL);pthread_join(p2, NULL);printf("Final value : %d\n", counter);return 0;
}
在编译的时候需要加上额外的参数-lpthread
,因为该头文件在Linux默认Import Library中没有,需要使用库libpthread.a
进行编译链接。
命令gcc threads.c -o threads -lpthread
然后会生成可执行文件threads
,使用./threads
运行即可。
【Linux】编译C语言文件(-o -lpthread)相关推荐
- GCC 编译 C 语言文件
GCC 编译 C 语言文件 题目要求 请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b) ...
- linux 编译C语言代码后产生OBJ文件的方法
如果你不指定编译成什么文件,gcc默认一步到位,直接生成可执行文件你可以试试以下几个参数 -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他 ...
- windows下编译c语言文件路径,解决JNI在Windows环境下因长路径导致编译失败问题
之前听一个朋友反馈LuaScriptoCore在Windows下编译会报错,今天特意跑到Windows环境下测试了一番,果然是存在问题.得到了下面的编译报错信息: Build command fail ...
- linux 编译运行c文件
在ubuntu安装gcc 编辑 test.c /* Not stdio.h */ #include <unistd.h>void main() {char str[100];/*Write ...
- vs编译c语言文件不读取对象式宏,C代码的条编译宏windows的VS和linux下gcc编译不一样...
#include #include #define XXX 2 #define YYY 20 int main() { #if(XXX > 10) printf("XXX > 1 ...
- linux编译python语言指令_Python实现Linux命令xxd -i功能
一. Linux xxd -i功能 Linux系统xxd命令使用二进制或十六进制格式显示文件内容.若未指定outfile参数,则将结果显示在终端屏幕上:否则输出到outfile中.详细的用法可参考li ...
- Linux下 C语言文件IO操作(系统IO)
Linux系统下使用C语言进行文件系统IO操作 1打开文件 函数:int open(const char *,int flags); //打开一个已经存在的文件 int open(const char ...
- centos如何编译c语言文件,centos如何编译c语言代码
编译c,c++代码 安装gcc 1.使用如下命令查询 centos 官方gcc的所有包: yum -list gcc* 可安装的软件包 gcc.x86_64gcc-c++.x86_64gcc-gfor ...
- Linux下c语言文件读写函数总结
1.FILE *fopen(const char *filename, const char *mode) "r" 打开一个用于读取的文件.该文件必须存在. "w&quo ...
最新文章
- 说一说activity
- Android-Binder(一)
- 2021-03-31 Matlab simulink 模糊PID在无刷直流电机中的应用
- 如何通过apk获得包名及Activiy 名称
- 全国计算机一级d类考试内容,全国计算机一级考试WPS office复习题及答案2017
- 第十二节:WebApi自动生成在线Api文档的两种方式
- 游戏开发-cocos creator技巧-cc.Component.EventHandler自定义click事件
- php分页类示例下载,PHP 通用分页类的简单示例
- 艾伟_转载:扩展方法 之 基本数据篇
- 管理Kubernetes集群时需要关注的关键指标
- Java高级编程练习题
- 计算机上键盘无法输入法,电脑中输入法设置窗口提示检测到不兼容的键盘驱动的解决方法...
- UIDataCollector的下载和使用
- 拜托,请给我贫寒简单的生活!
- 深入了解JVM之垃圾回收(二)
- 【Docker】自定义dockerfile构建容器镜像并发布
- /etc/fstab文件详解
- nvm use 报错:You do not have sufficient privilege to perform this operation
- python中使用什么命令安装组件_在离线环境下安装python组件
- 最优投资组合构建问题,Python实现
热门文章
- for,foreach,iterator的用法和区别
- 学习总结:机器学习(一)
- zk中的Datebox中得到Timestamp
- mybatis-plus分页查询_SpringBoot + MyBatisPlus 快速入门
- 如何在ftp服务器下查找文件夹,查找ftp服务器下的文件夹名
- 个人信息管理系统代码_Thymeleaf+SpringBoot+Mybatis实现的易游网旅游信息管理系统...
- html5 video修改默认样式,HTML5中将video设置为背景的方法
- git显示服务器所有分支,git 查看所有远程分支以及同步
- python3读取ini文件_python3配置文件ini读取方法
- mybatis添加方法可以传map吗_Mybatis中传递多个参数的4种方法总结