1

Apple が提供するオープン ソースの dns_sd.h ライブラリを適切に追加しようとしています。ここに示されているように、BonjourRegistrar クラスを使用するプログラムを作成しています: リンク テキスト

私はすでに Mac 環境でプログラムを作成しており、現在それを Windows に移植しようとしています。Bonjour SDK にはいくつかのクラスが付属しており、Qt プロジェクトにクラスを正しく追加する方法について非常に混乱しています。次の行を追加しようとしました:

win32:LIBS += c:\dnsssd.lib

.pro ファイルで成功しませんでした。また、dns_sd.h ファイルと dns_sd.c ファイルをプロジェクトに追加しようとしたところ、次のようなエラーがいくつか発生しました。

'UINT8': 型に名前を付けません 'INT8': 型に名前を付けません 'UINT16' には型に名前を付けません 'INT16' には型に名前を付けません

最後に、このリンクリンク テキストの xcimo で説明されているように、lib ファイルを変更しようとしてい ます。

これらのファイルを適切に変更するために正しいコマンドを使用しているかどうかわかりません。

4

3 に答える 3

6

Apple が配布する .lib は、Qt アプリケーションを MSVC コンパイラでコンパイルする場合にのみ使用できます。

それ以外の場合は、あなたが言ったように、GCC 互換のライブラリ (.a) が必要です。そのためには、次の手順を実行する必要があります。

  1. .lib: でreimpツール [0] を実行しますreimp dnssd.lib。ファイルDLLStub.objが生成されます。
  2. .dll: に対してgendefツール [1] を実行しますgendef dnssd.dll。ファイルdnssd.defが生成されます。.dll は、32 ビットを使用している場合、または64 ビット バージョンC:\Windows\System32を使用している場合は、から取得できます。C:\Windows\SysWOW64
  3. 最終的な .a: を組み立てますdlltool -k -d dnssd.def -l libdnssd.a
  4. 新しく作成されたライブラリに、.pro ファイルの正しいパスを追加します。LIBS += -L"/path/to/the/library/file" -ldnssd

[0] - http://sourceforge.net/projects/mingw/files/MinGW/Extension/mingw-utils/mingw-utils-0.4-1/

[1] - http://sourceforge.net/projects/mingw/files/MinGW/Extension/gendef/gendef-1.0.1346/ - pexportsstdcall-type ライブラリを MSVC からGCC のものなので、適切な .def ファイルを取得できます。

PS: 作成者がそれを機能させたことは知っていますが、それを実行する方法については、もう少し詳細な説明が必要だと感じました。情報はインターネット上に散らばっています。

于 2012-07-04T12:05:06.760 に答える
0

追加してみてください

DEFINES += _WIN32

プロジェクトファイルに。

于 2010-12-03T10:45:08.637 に答える
0

私はそれを理解しました、あなたはlibライブラリを.aに変更するためにreimpとdllツールを使う必要があります

于 2010-12-17T01:10:04.787 に答える