解決策:私はメイクファイルに-lpthread -ldl
フラグを追加しました。理由は分かりませんが、私が試していたときにsqlite3を手作業でコンパイルするのを避けるのに十分なことは幸運です。うーん、とにかく答えはかなり良いところです。おかげで、あなたに行くと、お茶を飲むだろう。C++アプリケーションでsqlite3をコンパイルするには?
3ヶ月前に私はそれを行う方法を見つけることができましたが、現在は機能していません。私はsqlite3コードを埋め込む必要がある巨大なC++アプリケーションを持っていますが、コンパイルできません。私はこのようなものを使用します:
gcc sqlite3.c -lpthread -ldl -o ./sqlite3.o
しかし、それは動作しません。私は多くのバリエーションを試しました。私はsqlite3.hとsqlite3.cファイルを追加したmakefileを持っています。私は私のアプリの特定のフォルダに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'
これはアプリとは別にsqlite3のをコンパイルしようとしたとき、私は、-lpthread
フラグを追加する必要があることを意味します。まあ、私は立ち往生しています。
メイクファイルを投稿するべきかもしれません... –
SQLiteのメーリングリストは、これを実現するためにもっと適切な場所になるでしょう。これはプログラミング言語に関する質問ではなく、ビルドの問題に関する個人的な支援の要請です。 –
申し訳ありませんが、彼らのメーリングリストに行きます。しかし、私はこの問題を解決するためにリストに署名したくありません。私は自分自身を殺すだろう。 –