5

pthread-win32をx64で動作させるためにいくつかの作業が行われたようですが、ビルド手順はありません。Visual Studio x64 Cross Toolsコマンドプロンプトを使用して単純にビルドしようとしましたが、x64アプリケーションからlibにリンクしようとすると、関数のエクスポートが表示されません。まだライブラリをx86か何かとしてコンパイルしているようです。

/ MACHINEをmakefileの適切な場所に追加しようとしましたが、役に立ちません。誰かがこれを機能させましたか?

4

7 に答える 7

4

私にとっては、64 ビット Windows コンパイラ (この特定のケースでは mingw-w64 クロス コンパイラ) を使用してから (with2.9.1) を次のように作成します。

$ make clean GC-static 

次に、使用するためにどのようにインストールするか(もちろん、これのいくつかは必要ないかもしれません)、

cp libpthreadGC2.a $mingw_w64_x86_64_prefix/lib/libpthread.a
cp pthread.h sched.h semaphore.h $mingw_w64_x86_64_prefix/include

次に、これを使用するには、これを定義する必要があります (使用するための ffmpeg configure 行の例):

--extra-cflags=-DPTW32_STATIC_LIB 

とにかくそれは一つの方法です。

もう 1 つの方法は、同じことを行ってから *.h ファイルを変更し、ヘッダーから dllexport へのすべての参照を削除する (またはヘッダーで DPTW32_STATIC_LIB を手動で定義する) ことです。

元:

 sed 's/ __declspec (dllexport)//g;s/ __declspec (dllimport)//g'

(参照: zeranoe ビルド スクリプト)

于 2013-05-06T13:06:43.153 に答える
2

公式にリリースされるまでは、ライブラリのバージョン 2.9 を入手するには、CVS ヘッドをチェックアウトする必要があるようです。バージョン 2.9 にはすべての x64 パッチが含まれていますが、コマンド ラインからスタティック ライブラリをコンパイルしようとすると、依然として問題が発生します。

私が知っている唯一の回避策は、LIB を静的にリンクする代わりに DLL を使用することです。

于 2008-10-02T13:29:29.437 に答える
2

これが私がやった方法です(VS2015)。古い Visual Studio でも機能するはずです。

1) SourceForge からリリース .zip をダウンロードします
。2) クリーンなフォルダーに解凍します。「pthreads.2」が表示
されます。3) Visual Studio コマンド プロンプトを開き、「pthreads.2」に移動します。4) 引数なしで「nmake」を実行します。それを構築するために「nmake」に与えることができるすべての合法的なコマンドをリストしたヘルプメッセージを生成します。詳細については、「pthreads.2\FAQ」ファイルを参照してください。このファイルには、「クリーンアップ」処理の 3 つの異なるフレーバーが説明されています。

「VC」と「VC-debug」(およびおそらくそれらの静的なもの) のみをビルドすることをお勧めします。「本当の」pthreads は、Linux のような POSIX プラットフォーム上の C システム ライブラリです。そのため、Linux や FreeBSD などで得られるのとまったく同じ Windows 上の C エラー動作を提供するのは、これらの組み合わせだけです。

于 2015-07-29T20:41:18.000 に答える
0

このメッセージが役立つ場合があります。

于 2008-10-01T22:32:03.370 に答える