2012-08-31 3 views
1

나는 이것을 지난 2 일 동안 작동 시키려고했지만 그렇게 할 수는 없습니다. 어쩌면 누군가 나를 도울 수 있습니다. 먼저 설정을 설명하겠습니다.mingw w64 labview 빌드 오류

윈도우 7 64 비트

nidaqmx 9.1.7

와 Mingw 64 비트

넷빈즈 7.1.2

나는 C에서 (A DEF 파일을 만든 : \의 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 비트입니다입니다 : 나는 다음과 같은 오류가 빌드 할 때 문제입니다.

도움을 주시면 감사하겠습니다.

답변

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

이 메시지는 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