私は静的ユーザライブラリでpthreadを使いたいですが、それを使用する各プロジェクトに '-lpthread'を追加しない限り依存プロジェクトはリンクされません。gccでは、スタティックユーザライブラリにライブラリ(-lpthread)を含めるにはどうすればいいですか?
自分のユーザーライブラリに「-lpthread」と指定します。実際には、私はそれをしましたが、何もしません。私はまだそうでない場合は、私が
Invoking: GCC C++ Linker
g++ <....>
/usr/bin/ld: /home/xxx/git/xxx/xxx.CUtil/Debug/libxxx.CUtil.a(EzyThread.o): undefined reference to symbol '[email protected]@GLIBC_2.2.5'
を取得し、私もそれを使用してプロジェクトにその依存関係を含める必要がある場合IMOそれは、私自身のユーザーライブラリの目的に反し、依存プロジェクトに「-lpthread」を追加する必要があります。 pthreadの代わりに別の内部メカニズムを使用することにした場合はどうすればよいですか?
私は私が何をしたいんMS VCに
#pragma comment(lib, "SomeOtherStuff.lib")
を使用しました - しかし、私はgccの環境になりましたよ。私は感情に高いと思われる#pragma comment(lib, "xxx.lib") equivalent under Linux?をチェックし、利用可能な情報については低かった。 gccに似たようなものがありますか、それとも依存するプロジェクトごとに '-lpthread'を指定しないようにするには何か他の方法がありますか?私はCがOOPではないことを知っていますが、なぜ各依存関係はユーザーライブラリの実装方法を工夫する必要がありますか?
(#pragmaメソッドのようなものが '-lpthread'よりも長いとは言わないでください)#pragmaまたはそれと同等のメカニズムがユーザーライブラリにありますが、 '-lpthread'は一度入力されます。潜在的に何百回も必要とされ、ユーザライブラリの根底にあるメカニズムが変わった場合に何度も変更する必要があります)。
AFAIKできません。 – immibis
この種のものは、通常、ビルドシステムに委任されます。 –
'.o'を解凍してlibヘルプに追加しますか? 'ar t/usr/lib/x86_64-linux-gnu/libpthread.a'、[man ar](https://linux.die.net/man/1/ar)を参照してください。 –