Chuyu-Team / VC-LTL5

Shared to msvcrt.dll or ucrtbase.dll and optimize the C/C++ application file size.
Eclipse Public License 2.0
499 stars 48 forks source link

ARM32找不到setjmp 和 __intrinsic_setjmp符号 #26

Closed MouriNaruto closed 2 years ago

MouriNaruto commented 2 years ago

复现环境

           ###################################################################################################
           #                                                                                                 #
           #                 *         *      * *             *        * * * * *  *                          #
           #                  *       *     *                 *            *      *                          #
           #                   *     *     *       * * * * *  *            *      *                          #
           #                    *   *       *                 *            *      *                          #
           #                      *           * *             * * * *      *      * * * *                    #
           #                                                                                                 #
           ###################################################################################################

           VC-LTL Path      : C:\Users\mouri\.nuget\packages\vc-ltl\5.0.4-beta1\build\native\
           VC Tools Version : 14.30.30705
           WindowsTargetPlatformMinVersion : 6.2.9200.0
           Platform         : ARM

受影响范围

至少包含 VC-LTL 的 msvcrt 模式的 ARM32 目标的 Debug 和 Release 配置(虽然只测试了静态链接运行库版本,但是动态链接运行库版本也建议进行检查)

毛利

mingkuang-Chuyu commented 2 years ago

ARM似乎不能处理环形weak alias

libcmt.lib默认情况下早于vcruntime,因此它找不到?这是我的推测原因。

临时解决方案:抑制libcmt.lib,然后添加 vcruntime.lib、libcmt.lib。这样可以使 vcruntime早于 libcmt

因为只影响arm,所以影响范围比较低

mingkuang-Chuyu commented 2 years ago

https://github.com/Chuyu-Team/VC-LTL5/releases/tag/v5.0.4-Beta3