我正在为我的项目使用Code :: Blocks IDE。
到目前为止,我下载了sqlite3 amalgation文件,使用make install
安装它们并将libsqlite3.a库链接到我的项目
项目 - > 构建选项 - > 链接器设置并添加了libslite3.a文件。
现在,当我尝试构建项目时,出现了undefined reference to pthread_mutex_trylock
或undefined reference to pthread_create
等错误。
我在我的主要内容中添加了pthread
,thread
,mutex
标题,我在项目中添加了选项-lpthread
和pthread
- > 构建选项 - > 其他编译器选项,但我仍然遇到同样的错误。
答案 0 :(得分:1)
-l<library>
是链接器选项,而不是编译器选项,因此在Code :: Blocks中
它进入其他链接器选项
从编译器选项中删除-lpthread
并将其添加到链接器
选项可能就足够了。
然而,在GCC中启用pthreads
多线程的正确,可移植的方法是
将选项-pthread
(不是-lpthread
)添加到两个编译器选项: -
项目 - &gt; 构建选项 - &gt; 编译器设置 - &gt; 其他编译器选项
和链接器选项:
项目 - &gt; 构建选项 - &gt; 链接器设置 - &gt; 其他链接器选项
此选项告诉编译器执行正确的操作
生成符合pthreads
的代码并告诉链接器做正确的事情
将它链接到主机平台的POSIX线程库。
在您的计划pthreads
#include <pthreads.h>