解决方案:我只是将-lpthread -ldl
标志添加到我的生成文件,它的工作原理!不知道为什么,但我很幸运,以避免手动编译sqlite3,因为我正在尝试..嗯,无论如何,一些答案在哪里很不错。谢谢你们,我们会为你喝点茶。如何在我的C++应用程序中编译sqlite3?
三个月前,我能够找到如何做到这一点,但现在它不工作。我有一个巨大的C++应用程序,我需要嵌入sqlite3代码,但我无法编译它。我使用这样的东西:
gcc sqlite3.c -lpthread -ldl -o ./sqlite3.o
但它不工作;我尝试了很多变化。我有一个makefile,在那里我添加了sqlite3.h和sqlite3.c文件。当我在我的应用程序的特定文件夹做make && make install
,它显示错误:
.libs/sqlite3.o: In function `pthreadMutexTry':
/home/.../client/sqlite3.c:17769: undefined reference to `pthread_mutex_trylock'
.libs/sqlite3.o: In function `pthreadMutexAlloc':
/home/.../client/sqlite3.c:17637: undefined reference to `pthread_mutexattr_init'
/home/.../client/sqlite3.c:17638: undefined reference to `pthread_mutexattr_settype'
/home/.../client/sqlite3.c:17640: undefined reference to `pthread_mutexattr_destroy'
这意味着,我需要添加-lpthread
标志,试图从应用程序分别编译sqlite3的时候。那么,我卡住了。
也许你应该发布你的Makefile ... – 2012-01-02 15:05:06
SQLite邮件列表几乎肯定会是一个更合适的地方。这不是关于编程语言的问题,而是关于构建问题的个人协助请求。 – 2012-01-02 15:17:42
好的,很抱歉,会转到他们的邮件列表。不过,我不想为了解决这个问题而签署这份清单。因此我会杀死自己。 – 2012-01-02 15:23:49