参考:非常方便的 Qt 静态链接方法,无法解析的外部符号 “class QAxFactory * __cdecl qax_instantiate(void)“,
0.前言
目前我只能用Debug,Release依旧报错。
我需要用qt简单的做个UI,添加个按钮TEXT什么的,以为qt和别的库一样就直接vcpkg下了。
vcpkg install qt, 直接下载了最新的qt6,一直在下,一看大小四五十G了,赶紧停下转去找别的办法。
如果碰到问题,比方说vcpkg在哪下载,在那输入代码,问问AI就好,应该都能解决。
如果网络链接不畅,可以试试高校的vpn,Watt Toolkit,网易UU加速器搜学术资源,等办法来链接GitHub。
按理说应该可以给vcpkg换国内镜像源,奈何我实在不会。(好心人私下我办法)
1.vcpkg下载qt5
vcpkg install qt5:x64-windows-static
下载编译会用较长时间,我这边大概1.2h。
完成后会弹出绿色字体。
vcpkg integrate install
这个代码用来安装下载好的库,这个不知道在qt这里用不用得到,我是下好个库就输入一次。
2.安装QT vs tool
任意打开一项目,安装这个。
安装好后添加安装路径。
点一下Add,然后再点路径那里的三个点。
这里需要分别输入dbg和rel的路径:
E:\vcpkg\buildtrees\qt5-base\x64-windows-static-dbg\bin
E:\vcpkg\buildtrees\qt5-base\x64-windows-static-rel\bin
注意区分x64-windows-static-rel与x64-windows-rel,这里要用带static的。
3.新建试一下
创建好后运行试试,双击ui试试,不行再看下面。
4.打开UI时候报错问题解决
把路径:E:\vcpkg\buildtrees\qt5-tools\x64-windows-static-dbg\bin
中的designer.exe和linguist.exe
放到E:\vcpkg\buildtrees\qt5-base\x64-windows-static-dbg\bin下
再
把路径:E:\vcpkg\buildtrees\qt5-tools\x64-windows-static-rel\bin
中的designer.exe和linguist.exe
放到E:\vcpkg\buildtrees\qt5-base\x64-windows-static-rel\bin下
5.静态动态库混了
检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(QtWidgetsApplication1.obj 中)
下面是解决
试试能不能运行,报错再继续往下
再运行还是报错
无法解析的外部符号 "class QAxFactory * __cdecl qax_instantiate(void)" (?qax_instantiate@@YAPEAVQAxFactory@@XZ),函数 "class QAxFactory * __cdecl qAxFactory(void)" (?qAxFactory@@YAPEAVQAxFactory@@XZ) 中引用了该符号
E:\vcpkg\installed\x64-windows-static\lib\manual-link\qtmain.lib
记得应用
再次运行,成功了
这里开了
只用静态库不知道会影响其余库,比方说我刚刚试了试vtk,现在踩坑了,我去研究下正常qt怎么下精简版的...
如果你用上述办法,又装了vtk但是碰到问题了,试试vcpkg下载vtk后碰到的问题