Windows 中的 QtCreator 和 Matlab 库
Posted
技术标签:
【中文标题】Windows 中的 QtCreator 和 Matlab 库【英文标题】:QtCreator and Matlab libraries in Windows 【发布时间】:2015-04-16 16:16:10 【问题描述】:我正在尝试使用 QtCreator 和外部 Matlab 库在 Windows 中构建应用程序。我可以添加库并包含目录,但是当它尝试链接时,我得到所有 Matlab 函数的“未解析的外部符号”。 QtCreator 正在寻找 _matOpen,但函数是 matOpen。我用“dumpbin”看符号,果然qt obj文件中的符号是
...
00000294 REL32 00000000 149 _matOpen
...
149 00000000 UNDEF notype () External | _matOpen
...
在matlab库中:
...
77B8 __imp_matOpen
77B8 matOpen
...
4B matOpen
...
Version : 0
Machine : 8664 (x64)
TimeDateStamp: 5009E1D3 Fri Jul 20 15:55:15 2012
SizeOfData : 00000013
DLL name : libmat.dll
Symbol name : matOpen
Type : code
Name type : name
Hint : 97
Name : matOpen
为什么 QtCreator 会添加下划线,如何让它停止?
我正在使用 Matlab 2012b、Qt 5.4 和 QtCreator 3.3.2。
【问题讨论】:
相关:Why do C compilers prepend underscores to external names? 【参考方案1】:确保链接到正确的架构。 64位版本没有前导下划线,32位版本有IS。
【讨论】:
以上是关于Windows 中的 QtCreator 和 Matlab 库的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 上制作期间未定义 Qt vulkan 类
Windows 上的 QtCreator/QMake 完全禁用调试构建
QtCreator 1.3、Qt 4.6.2 和 cmake 在 windows 上的构建问题