2013-05-30 4 views
0

Windows 용 Linux에서 M 교차 환경 (MXE)을 사용하여 응용 프로그램을 빌드하려고합니다. 즉 Mingw입니다. 그러나 문제가 생겼습니다 : 사용하려는 라이브러리의 함수에 대한 참조가 아직 해결되지 않았습니다.Mingw가 dll에서 기호를 찾지 못했습니다.

i686-pc-mingw32-g++ -Wl,-s -mthreads -Wl,-subsystem,windows -o 
release/LPR_Demo.exe object_script.LPR_Demo.Release 
-L'/home/truskov/mxe/usr/i686-pc-mingw32/qt/lib' -lmingw32 -lqtmain -L/home/truskov/development/lprsdk/LPR/bin/ -lliblpr -lQtGui -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lmng -llcms -L/home/truskov/mxe/usr/i686-pc-mingw32/lib -ltiff -llzma -ljpeg -lQtCore -lpng -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lz 

./release/main.o:main.cpp:(.text+0x6): undefined reference to `lpr::ILPR::getLicenseData()' 
./release/main.o:main.cpp:(.text+0x15): undefined reference to 
`lpr::ILPR::createInstance()' ./release/main.o:main.cpp:(.text+0x38): 
undefined reference to `lpr::ILPR::getLicenseData()' 
./release/main.o:main.cpp:(.text+0x42): undefined reference to 
`lpr::ILPR::createInstance()' 
/home/truskov/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.0/../../../../i686-pc-mingw32/bin/ld: 
./release/main.o: bad reloc address 0x19 in section 
`.text$_ZN7QStringD1Ev[__ZN7QStringD1Ev]' 
/home/truskov/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.0/../../../../i686-pc-mingw32/bin/ld: 
final link failed: Invalid operation 

한편 /home/truskov/development/lprsdk/LPR/bin/ 원하는 기능을 포함 할 liblpr.libliblpr.dll이다에 (비주얼 스튜디오와의 링크에 문제가없는)

여기 커맨드 라인 출력된다. 이것에 대한 이유는 무엇일까요? msvc 컴파일러가 그것을 비난 할 수 있습니까? (.lib 및 .dll은 Visual Studio에서 컴파일되었습니다).

답변

0

Visual Studio에서 프로젝트 속성 - 일반 - 프로젝트 기본값 - 문자 집합으로 이동하여 UniCode 옵션을 해제하고 관련 라이브러리를 다시 빌드하십시오.

+0

결과를보고합니다. – Srv19

관련 문제