急!LINUX下,GCC编译,原程序包含<semaphore.h>头文件,为什么编译时说sem_wait,sem_post等未定义的引用

作者&投稿:仲长马 (若有异议请与网页底部的电邮联系)
linux下,用gcc编译c代码,error:undefined reference to sem_wait 怎么解决?谢谢!~

你首先看你程序中有没有格式错误,这个错误的意思是没有定义指针给sem_wait,应该检查一下,修改的话要根据错误来进行修改

试试 gcc -g wait.c -o wait -lpthread
这个是因为没有连接上库。

编译时加上参数:-lpthread

要看报错的阶段,是在编译还是链接阶段.
如果编译时函数没有找到,那是头文件的问题,如果链接时未定义引用,那是c库的问题.
如果你的头文件都正常包含了,那可能你的c库没有使能semaphore的支持.

要看报错的阶段,是在编译还是链接阶段.
如果编译时函数没有找到,那是头文件的问题,如果链接时未定义引用,那是c库的问题.

如果你的头文件都正常包含了,那可能你的c库没有使能semaphore的支持.

楼上说的对啊,如果是在编译阶段,可能是头文件路径不对。把你gcc编译语句和报错信息贴出来吧,这样大家好帮你~

gcc -o prohy -lpthread producer.c

贴代码呀 你这几句太含糊啦


!g 是Linux什么命令?
应该是获取最后一个g开头的历史记录 [root@iZ259r7h4pfZ ~]# !g getenforce Disabled [root@iZ259r7h4pfZ ~]# history |tail 995 2017-11-08 10:08:03 root cat test 996 2017-11-08 10:47:52 root cd ...1002 2017-11-09 10:29:21 root getenforce 1003 2017-11-09 10:2...

linux系统键盘g打不出来
系统故障。linux系统键盘选择为英文美式键盘布局,也就是DVORAK键盘,如果其中的g打不出来,就是系统故障的原因,需要退出后再重新登录即可。linux是一个操作系统,或者说是一个操作系统最底层的核心。

怎样在Linux下编程?需要什么技术?
在Linux下编程不需要什么特别的技术,你只需要掌握Linux操作系统的使用方法,然后在里面安装你所需要编程语言的IDE即可。 Linux系统下是兼容大部分编译软件的,比如Java语言应用最广泛的是eclipse,它具备Linux版本,而且用起来和Windows下差别不大。 Linux生态圈还有一款广为人知的可以写代码的软件,那就是vim,如果你在Linux...

Linux新建用户组g1,并设置其gid为800linux新建用户组
1、首先我们在Linux系统命令行中输入groupadd命令,用它创建一个用户组,如下图所示。2、创建好了以后运用cat命令,打开etc下面的group文件,我们创建的用户组都会在里面,如下图所示。3、打开group文件以后,我们看到了刚才创建的用户组,这是鉴别用户组是否创建成功的根据。4、还可以通过在命令行中输入gr...

linux 下,编译时启用-g选项,会不会影响运行速度。发布版本时,要不要...
加上-g后肯定会影响运行效率的,而且包含代码的很多信息,一来为了提高效率,二是防止被别人很容易的反编译,发布时使用strip去除debug信息。

linux下怎么才能打一个字母,后面的就自动打出来了
Linux在终端命令行模式下有智能补全功能 ,输入首字母后按Tab键,如果系统环境变量里存在完全匹配字符串就会自动补全。如目录路径或文件,比如系统里有这样的目录\/boot\/grub\/grub.cfg文件 你要找.cfg这个文件。那么你只要输入\/boot\/grub\/g 按tab键,系统就会自动补全grub.cfg .....

linux添加用户到组命令linux添加用户到组
linux下创建用户组命令——groupadd命令。其格式如下:代码:groupadd选项用户组。可以使用的选项有:代码:-gGID指定新用户组的组标识号(GID)。-o一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。Linux中如何创建用户和组?Linux中创建用户和用户组的具体操作步骤如下:1、首先...

如何用GCC在linux下编译C语言程序
在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器,假设我们有下面一个非常简单的源程序(hello.c):int main(int argc,char **argv){ printf("Hello Linux\\n");} 要编译这个程序,我们只要在命令行下执行:gcc -o hello hello.c gcc 编译器就会为我们生成一个hello的可执行文件....

linux系统中DF命令能强制用G为单位显示么?
一般磁盘大小DF -H 命令就显示为G了 你的显示为T,说明你的磁盘空间很大.羡慕啊 要强制显示为G可用下面的参数 df -B 1g

Linux下常用软件有哪些
1) Gnome Milnes:GNOME下的扫雷;2) Gnibbles:贪吃蛇游戏;3) Freecell:Windows下的空当接龙游戏;3. Graphics:图形处理软件 1) Electric Eyes:一个十分优秀的图形处理软件,可谓GNOME下的AcdSee呀!2) XPDF:一个在Linux阅读PDF文档的工具;3) The Gimp:一个十分优秀的绘图软件,与Photoshop很...

崇川区18030187996: linux 怎么编译c的源程序的?gcc,编译命令是什么? -
彩曹硫酸: 编译方法:格式 gcc [option] [sourcefilename]常用的选项最简单的是:gcc hello.c默认的情况下将生成a.out的可执行性文件,只需要在终端上输入./a.out就可以看到执行的结果,如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下...

崇川区18030187996: 如何在Linux下用gcc编译c程序 -
彩曹硫酸: 初学者在编译的时候最好一步一步来,以hello.c为例:先将源文件编译成目标文件:gcc - c hello.c 上一步生成hello.o文件,再将目标文件编译成可执行文件:gcc -o hello hello.o

崇川区18030187996: 如何用gcc在linux下编译多线程c语言程序 -
彩曹硫酸: 如果已经写好了源文件,那么cd进所在的目录gccfilename.c-ofilename./filename

崇川区18030187996: Linux下gcc编译介绍 -
彩曹硫酸: Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一.gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%. Gcc编...

崇川区18030187996: 如何在linux系统中用gcc编译并且运行c程序? -
彩曹硫酸: 1、gcc t 文件名.c -o 文件名2、直接运行 o 后面的文件名即可 gcc(选项)(参数) 选项:-o:指定生成的输出文件;-E:仅执行编译预处理;-S:将C代码转换为汇编代码;-wall:显示警告信息;-c:仅执行编译操作,不进行连接操作.示例:->gcc test.c -o test->test

崇川区18030187996: 在linux中,怎么用gcc编译文件 -
彩曹硫酸: 在终端中输入 gcc 文件名 -o 目标文件名 然后 ./目标文件名 就行了,没有目标文件名,自动存为 a 执行 ./a 就行了.在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称.GCC编译器的调用参数大约有100多个,其中多数参...

崇川区18030187996: Linux中gcc的编译过程包括哪几步? -
彩曹硫酸: gcc编译分为四部;第一步,预编译,将程序中的宏定义等预编译;第二步,编译,将*.h,*.c等文件编译成为*.o文件;第三步,汇编;第四步,连接,将*.o文件连接库,生成可执行文件!

崇川区18030187996: 64位linux下的GCC如何编译出一个32位可执行程序? -
彩曹硫酸: 理论上安装支持环境,之后 64 位的 gcc 编译成 32 位程序,就加 -m32 参数即可. 当然还一个办法是装个 32 位的 gcc . 另外,交叉编译也适用于 x86 架构. 不过这么编译经常会出现各种问题,所以编译 32 位的程序,最好还是用 32 位系统. ...

崇川区18030187996: 我在linux下写了个程序,怎么用gcc编译?? -
彩曹硫酸: gcc是一个编译器,qt是一个界面编程工具,两者是不能比的.linux下编译c程序必然要用到gcc编译器,而qt则是用来开发界面程序的,类似windows下微软的mfc,你要在linux下写程序,必然的要会使用gcc对你的程序进行编译,至于qt只是个基于C++的界面程序开发工具,觉得以后用到就学一下,用不到就算了.我在和你说一遍,gcc只是一个编译器. 你的意思是linux下的c/c++集成开发环境吧,anjuta,eclipse等等都可以,但他们只是提供了开发环境,编译器还是用的gcc.

崇川区18030187996: 到底怎么在Linux里编写c程序啊? -
彩曹硫酸: 在linux下通常使用gedit或vim直接编写.c程序,然后通过gcc指令编译.以Ubuntu系统为例,详细过程如下: 1、进入桌面Temp文件夹 2、右键新建空白文件 3、将文件命名为hello.c 4、进入hello.c,开始编写代码(默认gedit为编辑器) ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网