在dll中找不到符号
Mingw does not find symbols in dll
我正在尝试从Linux下为windows构建一个应用程序,使用M跨环境(MXE),即Mingw。然而,我遇到了一个问题:从我试图使用的库中引用函数仍然无法解析。
命令行输出:
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
,它们确实包含所需的函数(在visual studio中链接它们没有问题)。这可能是什么原因呢?msvc编译器应该为此负责吗?(.
在Visual Studio中进入项目属性-常规-项目默认值-字符集,关闭UniCode
选项并重新构建相关库
相关文章:
- VC++本机单元测试,找不到调试符号
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- LD:尝试编译项目时找不到架构x86_64符号
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 体系结构x86_64的未定义符号:找不到原因
- 在OSx:ld上使用CMake构建C++项目:找不到体系结构x86_64的符号
- 编译 GCC-5.0 OS X 狮子 dyld:找不到符号:__ZNKSt11logic_error4whatEv
- 为什么找不到这些符号?
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- Qt Creator项目打破:"找不到建筑x86_64符号"
- 在 Mac 上C++编译代码时处理“dyld:惰性符号绑定失败:找不到符号”错误
- 与 dlopen 的动态链接:找不到符号
- MacOS LD:找不到符号(x86_64)
- C++编译错误:ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v
- dyld:惰性符号绑定失败:找不到符号:_yylex
- MacOS - 编译 c++ OpenCv 返回体系结构x86_64找不到的符号
- ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- OSX CGGetActiveDisplayList -> ld:找不到体系结构x86_64的符号
- EMF文件(.so)调试,符号找不到VTable错误