C++ Sqlite3库给出线程错误,即使使用-lpthread选项
我正在为我的项目使用Code::Blocks IDE 到目前为止,我下载了sqlite3 amalgation文件,使用makeinstall安装了它们,并将libsqlite3.a库链接到了我的项目 项目->构建选项->链接器设置,并添加libslite3.a文件 现在,当我尝试构建我的项目时,会出现一些错误,比如未定义对pthread\u mutex\u trylock的引用,或者未定义对pthread\u create的引用 我在main中包含了pthread、thread、mutex头,在project->build options->other copiler选项中添加了选项-lpthread和pthread,但仍然得到了相同的错误。-l是链接器选项,而不是编译器选项,所以在Code::Blocks中 它会出现在其他链接器选项中 从编译器选项中删除-lpthread并将其添加到链接器 选择可能就足够了 然而,在GCC中启用pthreads多线程的正确、可移植的方法是 要将选项-pthread not-lpthread添加到两个编译器选项中,请执行以下操作:- 项目->生成选项->编译器设置->其他编译器选项 以及链接器选项: 项目->生成选项->链接器设置->其他链接器选项 此选项告诉编译器对这两个对象执行正确的操作 生成与pthreads兼容的代码,并告诉链接器对其执行正确的操作 将其与主机平台的POSIX线程库链接C++ Sqlite3库给出线程错误,即使使用-lpthread选项,c++,sqlite,ide,codeblocks,C++,Sqlite,Ide,Codeblocks,我正在为我的项目使用Code::Blocks IDE 到目前为止,我下载了sqlite3 amalgation文件,使用makeinstall安装了它们,并将libsqlite3.a库链接到了我的项目 项目->构建选项->链接器设置,并添加libslite3.a文件 现在,当我尝试构建我的项目时,会出现一些错误,比如未定义对pthread\u mutex\u trylock的引用,或者未定义对pthread\u create的引用 我在main中包含了pthread、thread、mutex头,
要在程序中使用pthreads,请在链接sqlite3.so文件而不是.a文件时包含项目生成。足够吗?您的解决方案是可行的,但现在我有一个未定义的对dlerror的引用,如果我在linker options libsqite3.so中将-dl作为一个选项链接,则无法修复该引用。只需在其他链接器选项中使用-lsqlite3,链接器就会选择.so作为首选项。如果libsqlite3.so不在默认libdirs/usr/lib、/usr/local/lib中,则需要在搜索目录->链接器中提供其路径