c-mingw w64实验室视图生成错误



在过去的两天里,我一直在努力让它发挥作用,但做不到。也许有人可以帮我。让我先解释一下我的设置;

windows 7 64位

nidaqmx 9.1.7

mingw 64位

Netbeans 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位的,所以我不知道这个错误是从哪里来的。

如有任何帮助,我们将不胜感激。

..//x86_64-w64-mingw32/bin/ld.exe:输入文件`../..的i386体系结构/Createdef/libnidaq.a(dyyrh.o)'与i386:x86-64输出不兼容

该消息表示您正在尝试将32位库(i386)链接到64位可执行文件(x86-64)。由于您没有显示用于生成dyyrh.o和libnidaq.a的确切命令,因此无法判断您做错了什么。

我建议您在生成这两个文件时检查传入的开关和选项。例如,如果使用的是windres.exe,请确保使用了-F x86-64。类似地,如果使用dlltool.exe,也有一个类似的开关-m x86-64

您可以对生成的文件使用objdump来检查其格式是否正确,并与项目构建的其余部分一致。例如

objdump -t dyyrh.o 

objdump -t libnidaq.a

最新更新