1

過去2日間、これを機能させようとしましたが、できません。多分誰かが私を助けることができます。最初にセットアップについて説明します。

ウィンドウズ7 64ビット

nidaqmx 9.1.7

mingw 64ビット

ネットビーンズ 7.1.2

def ファイルを作成しました (C:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C\lib64\msvc\nidaqmx.lib から)。def ファイルには @ 記号が含まれていませんが。それが正しいか?

次に、dlltool を実行し、リンカーで使用した libnidaq.a ファイルを作成しました。

そこまですべてが機能します。問題は、ビルドしようとすると次のエラーが発生することです。

c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `../../Createdef/libnidaq.a(dyyrh.o)' is incompatible with i386:x86-64 output
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw32/bin/ld.exe: i386 architecture of input file `../../Createdef/libnidaq.a(dyyrt.o)' is incompatible with i386:x86-64 output
collect2.exe: error: ld returned 1 exit status
make[2]: *** [dist/Debug/MinGW-Windows/libHelloWorldC.dll] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

すべてが 64 ビットであると確信しているため、このエラーがどこから発生しているのかわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

../../x86_64-w64-mingw32/bin/ld.exe: 入力ファイル `../../Createdef/libnidaq.a(dyyrh.o)' の i386 アーキテクチャは i386:x86-64 出力と互換性がありません

このメッセージは、32 ビット ライブラリ (i386) を 64 ビット実行可能ファイル (x86-64) にリンクしようとしていることを意味します。dyyrh.o と libnidaq.a を生成するために使用された正確なコマンドを示していないため、何が間違っていたかを知る方法はありません。

これら 2 つのファイルを生成したときに渡されたスイッチとオプションを確認することをお勧めします。たとえば、windres.exe を使用している場合は、-F x86-64が使用されていることを確認してください。dlltool.exe を使用している場合と同様に、同様のスイッチがあり-m x86-64ます。

生成されたファイルで objdump を使用して、その形式が正しく、プロジェクト ビルドの残りの部分と一致していることを確認できます。例えば。

objdump -t dyyrh.o 

objdump -t libnidaq.a
于 2012-12-25T05:51:07.293 に答える