Closed L-Super closed 5 months ago
您使用的是哪个版本的Qt库?
我这边先看看是不是因为Qt指定了动态的libwinpthread导致的。
比较新的Qt我应该是都在构建时指定了static-runtime
的。。。
疑问解答:
-static
是全静态link(我也没确认,只是看了help)。但是仅限于单次link。或者可以直接指定静态库路径(而不是用 -l
)来直接指定静态库https://github.com/niXman/mingw-builds/issues/674
有个类似的问题,在 mingw 那边报告的,可以参考
您使用的是哪个版本的Qt库? 我这边先看看是不是因为Qt指定了动态的libwinpthread导致的。 比较新的Qt我应该是都在构建时指定了
static-runtime
的。。。疑问解答:
- 可以静态链接。
- 没试过单独静态某个库。用
-static
是全静态link(我也没确认,只是看了help)。但是仅限于单次link。或者可以直接指定静态库路径(而不是用-l
)来直接指定静态库
用的Qt5.15.7
5.15.7 我本地已经删了,没法查了
翻了一下当时的脚本有 static-runtime
。而且Qt5.15不使用OpenSSL,静态也不link mariadb
所以如果单用Qt就需要这几个库的话,只可能是Qt本身还在link pthread
试试我最新编的5.15.14吧,最好能给个最小程度的能复现问题的工程,这样我也能查查。。。
(居然点错close了
5.15.7 我本地已经删了,没法查了 翻了一下当时的脚本有
static-runtime
。而且Qt5.15不使用OpenSSL,静态也不link mariadb 所以如果单用Qt就需要这几个库的话,只可能是Qt本身还在link pthread试试我最新编的5.15.14吧,最好能给个最小程度的能复现问题的工程,这样我也能查查。。。
我用的actions install static qt。工程是一个Clion创建的hello world。没有附加内容。 晚上回去试一下5.15.14有没有winpthread.dll依赖
我没有提供过actions。 如果用的是 https://github.com/orestonce/install-qt-static 的话,他那边的版本已经好久没升级了。。。
我没有提供过actions。 如果用的是 https://github.com/orestonce/install-qt-static 的话,他那边的版本已经好久没升级了。。。
actions 使用静态库的就是从您这获取的。 版本没升级,所以让作者最近提供了Qt6的版本,哈哈哈。
由于没反馈,暂时关了哈
我私以为静态链接,可以直接打包成一个exe,无需依赖其他动态库,但实际运行时发现需要libgcc_s_seh-1,libstdc++-6和 libwinpthread-1三个动态库。虽然可以通过指定静态链接形式,但libwinpthread似乎没有单独静态编译选项。 疑问:
-static-libstdc++
选项一样,如果直接使用-static
也可行,但好像就无法链接其他动态库?(未作验证)