- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编译一个程序,该程序包含来自 pthread 库的互斥信号量,但是当我使用 -lpthread 标志进行编译时,我收到 undefined reference 错误。
gcc -lpthread prodcon.c
/tmp/ccESOlOn.o: In function `producer':
prodcon.c:(.text+0x2e): undefined reference to `pthead_mutex_lock'
prodcon.c:(.text+0xd6): undefined reference to `pthead_mutex_unlock'
collect2: ld returned 1 exit status
互斥锁的语法如下:
pthread_mutex_t mutex1;
是一个全局声明,因此它可以被多个线程使用。在我这样调用互斥锁的函数中:
pthead_mutex_lock(&mutex1);
pthead_mutex_unlock(&mutex1);
但是我遇到了编译器错误,我也尝试使用 -pthread 标志进行编译
gcc -pthread prodcon.c
/tmp/cc6wiQPR.o: In function `producer':
prodcon.c:(.text+0x2e): undefined reference to `pthead_mutex_lock'
prodcon.c:(.text+0xd6): undefined reference to `pthead_mutex_unlock'
collect2: ld returned 1 exit status
我已经搜索了答案,但不知所措,如果能帮助我在包含互斥锁的库中进行链接时弄清楚为什么它具有 undefined reference ,我将不胜感激。
最佳答案
顺序很重要,所以使用:
gcc prodcon.c -lpthread
或者更好:
gcc -Wall -Wextra -pedantic -pthread prodcon.c -lpthread
你确定你使用了pthead_mutex_lock
吗?或者这是一个错字?无论如何,它应该是 pthread_mutex_lock
。 pthread_mutex_unlock
也是如此。
关于c - 没有引用 pthread_mutex_lock 编译 -lpthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35716010/
我正在尝试交叉编译 samba 服务器。 ./config 工作得很好,但是当我想用 make 构建时,提示说: Linking shared library bin/libsmbclient.so.
我是 C 编程新手。 我试图使用 pthread API 编写一些并发程序。 我为 C/C++ 开发人员下载了 eclipse IDE,MinGW。我已经把所有的库,头文件放到了MinGW文件的相应位
所以我的问题是:为什么在编译命令末尾需要“-lpthread”? 为什么这个命令有效: gcc -o name name.c -lpthread 但这不会: gcc -o name name.c 我在
#include #include #include #include #define NB_THREAD 2 void *func(void *arg){ printf("t
我在 Windows 7 上使用带有 CDT 和 MinGW 的 Eclipse。我写了一个简单的程序,但它没有运行。 最佳答案 A.首先,确保包含路径为 Eclipse 所知。 以下说明详见http
我的系统中安装了 ubuntu 11。我有一个使用 pthread 库的 c 程序。我收到错误 Undefined reference to sem_wait() 即使我使用标志 -lpthread
这answer建议 -pthread 优于 -lpthread 因为预定义宏。 根据经验,-pthread 只给我一个额外的宏:#define _REENTRANT 1并且它似乎还强制将 libpth
在 8 个处理器上运行我的代码时遇到段错误,但它在 1 和 4 个处理器上运行良好。 我正在使用 lpthread 库,这是我在每个线程中执行的函数。如果需要更多代码,我可以添加更多代码。 v
也许这是个愚蠢的问题,但我有一个程序需要 -lmysqlcppconn -lreadline 和 -lpthread。 我正在使用 cmake 生成我决定使用的 makefile: set(CMAKE
我正在尝试使用 CMake 来编译我的项目。我依赖于 pthread 库。 在我的 CMakeFile 上,我尝试了很多不同的选项 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS
我正在尝试在 Mac 10.9.1 上编译程序,但遇到了问题。在运行带有 -lpthread 标志的 gcc 命令以创建 dylib 时,链接失败并出现以下错误。 ld : library not f
我正在编译一个程序,该程序包含来自 pthread 库的互斥信号量,但是当我使用 -lpthread 标志进行编译时,我收到 undefined reference 错误。 gcc -lpthread
我有一个服务器,它只在我执行 gcc server.c -o server -lpthread 时编译,但我的 makefile 是作为 gcc -lpthread server.c -o serve
这是我目前的问题。现在我正在尝试将基于 x86 的项目移植到 android。但该项目需要pthread库支持,无法通过配置阶段。 命令: ./configure --build=${BUILD_SY
这些天我在玩线程库并尝试实现一些功能。其中一个教程说要运行程序使用: gcc -lpthread -lrt -lc -lm project1.c scheduler.c -o out 首先我需要深入了
编译多线程程序时使用的gcc -pthread和gcc -lpthread有什么区别? 最佳答案 -pthread 告诉编译器链接 pthread 库并配置线程的编译。 例如,以下显示了在我的 Ubu
因此,我设计了一个服务器来实时接受多个客户端,其中客户端将“说话”,服务器将“重复”它。客户将一直保持活跃状态,直到我退出为止。我尝试使用 -lpthread 实现此目的,但服务器将接受所有客户端
这个问题在这里已经有了答案: Difference between -pthread and -lpthread while compiling (3 个答案) 关闭 4 年前。 我想利用 pthr
我正在为我的项目使用 Code::Blocks IDE。 到目前为止,我下载了 sqlite3 合并文件,使用 make install 安装它们并将 libsqlite3.a 库链接到我的项目pro
我对 C 中的 Makefile 还很陌生。我想弄清楚我应该把 -lpthread 放在我的 makefile 中的什么地方,这样我就可以在我的 C 程序中实现 posix 线程。下面是我的 Make
我是一名优秀的程序员,十分优秀!