我的系统中安装了ubuntu11。我有一个使用pthread库的c程序。我收到错误Undefinedreferencetosem_wait()即使我使用标志-lpthread编译。例如:gcc-lpthreadprog.c该程序在其他ubuntu安装上运行良好。 最佳答案 尝试:gcc-pthread而不是-lpthread。我相信,差异是显着的。后者链接到libpthread,前者链接到libpthread和其他一些东西!sem_wait是librt的一部分,因此您也可以使用gcc-lrt,但是-pthread会为您完成此操作(并
我目前正在尝试安装Eclipse来制作C++程序。我在编译预制的默认helloworld程序时遇到了问题。控制台显示此错误:c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe:cannotfind-lpthread我根本没有在我的程序中使用该库。关于如何解决这个问题有什么想法吗? 最佳答案 只需运行并打开MinGW安装管理器,它应该与MinGW一起预安装,在左侧面板上选择“所有包”,然后在右侧面板上搜索“mingw32-pthreads-w32"打
我有一个问题:如果我们有一个不使用线程的应用程序,我们可以通过两种方式链接它:1)照常链接,没有-lpthread和-ldl2)在链接中添加两个库:libpthread和libdl。例如$cata.cintmain(){printf("Hehe");}$gcca.c-w-oa$gcca.c-w-oa1-ldl-lpthread默认情况下,两个库都是动态链接的:$lddalinux-gate.so.1libc.so.6/lib/ld-linux.so.2$ldda1linux-gate.so.1libdl.so.2libpthread.so.0libc.so.6/lib/ld-linux
我有一个问题:如果我们有一个不使用线程的应用程序,我们可以通过两种方式链接它:1)照常链接,没有-lpthread和-ldl2)在链接中添加两个库:libpthread和libdl。例如$cata.cintmain(){printf("Hehe");}$gcca.c-w-oa$gcca.c-w-oa1-ldl-lpthread默认情况下,两个库都是动态链接的:$lddalinux-gate.so.1libc.so.6/lib/ld-linux.so.2$ldda1linux-gate.so.1libdl.so.2libpthread.so.0libc.so.6/lib/ld-linux
这是我的环境:操作系统:Ubuntu14.10海湾合作委员会:4.9cmake:2.8,3.1(都试过了)项目:muduo最近开始学习网络编程,下载muduo进行学习。虽然我在构建源代码时遇到问题,因为cmake会提示“找不到-lpthreads”。我做了一些研究。这主要是由于Ubuntu14.10下的gcc版本较新引起的。gcc-4.9将使用“-pthread”链接到pthread库,然而,旧版本的gcc使用“-lpthreads”。似乎cmake仍然使用“-lpthreads”,我不知道如何更正这个......错误日志如下:File/home/jack/workspace/gith
我有一个使用OpenMP并在Linux上运行的CMake项目。当我在我的Windows机器上编译它时,看起来CMake无法找到mingw的gcc的openmp标志。我决定尝试一个较小的测试用例并只编译main_openmp.c#include#includeintmain(intargc,char*argv[]){intid;#pragmaompparallelprivate(id){id=omp_get_thread_num();printf("%d:HelloWorld!\n",id);}return0;}然后当我尝试编译时gcc-oOpenMPTest2main_testomp.
我是posix线程库的新手,我尝试使用以下教程编译示例代码:g++-lpthreadagreement.cpp-oagreement但是我无法编译代码并收到以下错误消息:a3q2.cpp:(.text+0x7e):undefinedreferenceto`sem_open'a3q2.cpp:(.text+0xab):undefinedreferenceto`sem_wait'a3q2.cpp:(.text+0x290):undefinedreferenceto`sem_post'a3q2.cpp:(.text+0x2af):undefinedreferenceto`sem_close'
我在CentOS7中用gcc编译这段代码main.c:#includevoid*mystart(void*arg){pthread_yield();return(0);}intmain(void){pthread_tpid;pthread_create(&pid,0,mystart,0);return(0);}第一次编译:gcc-Wall-gmain.c-pthread-oa.out一切正常。第二次编译:gcc-Wall-gmain.c-lpthread-oa.out给予warning:implicitdeclarationoffunction'pthread_yield'[-Wimp
我有一个在给定机器上顺利运行的c++项目,现在我正尝试在另一台具有相同操作系统(Xubuntu14.04)的机器上编译它。我已经安装了所有依赖项,并且正在使用cmake构建项目,尽管它因以下错误而停止:Determiningifthefunctionpthread_createexistsinthepthreadsfailedwiththefollowingoutput:.../usr/bin/ld:cannotfind-lpthreads包含编译器标志的cmakelists.txt行如下:set(CMAKE_C_FLAGS"${CMAKE_C_FLAGS}-O3-lpthread-D