2013-05-30 4 views
0

Я пытаюсь создать приложение из Linux под Windows, используя M cross environment (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.lib и liblpr.dll, которые действительно содержат нужные функции (в визуальной студии нет никаких проблем в увязке с ними). Что может быть причиной этого? Может ли компилятор msvc винить в этом? (.lib и .dll были скомпилированы в Visual Studio).

ответ

0

В Visual Studio перейдите в раздел «Свойства проекта» - «Общие» - «По умолчанию проекта» - «Набор символов» и отключите опцию UniCode и перестройте соответствующую библиотеку.

+0

будет делать и сообщать результаты – Srv19

Смежные вопросы