0

我正在使用 cmake 将项目从 linux 移植到 windows。该项目是 clapack 以及一些测试程序。当我构建 32 位版本时,一切正常。但是,当我使用 64 位编译器构建时,无法运行可执行文件。

我运行的命令是:

32位:

    cmake .
    devenv CLAPACK.sln /build

64位:

    cmake "-DARCH=x86-64_Windows-7_VC10" -G "Visual Studio 10 Win64"
    devenv CLAPACK.sln /Rebuild "Release|x64" /project ALL_BUILD

我正在运行 Windows 7 和 cmake 2.8.4

4

1 回答 1

1

好吧,我不知道如何运行测试,但是程序在我的机器上启动得很好(我使用了cmake问题中的第二个命令,然后在 Visual Studio 2010 中打开了生成的解决方案文件并构建了整个解决方案)。安装程序完成后,我将使用 2010 SP1 重试。


所以这是我RUN_TESTS在 VS2010 SP1 中构建的输出。 xeigtsts通过没问题,但xeigtstz屡次失败。

1>  Test project C:/Users/BEN/Downloads/clapack-3.2.1-CMAKE/clapack-3.2.1-CMAKE
1>        Start  1: xblat1s
1>   1/94 Test  #1: xblat1s ..........................   Passed    0.15 sec
1>        Start  2: xblat1c
1>   2/94 Test  #2: xblat1c ..........................   Passed    0.03 sec
1>        Start  3: xblat1d
1>   3/94 Test  #3: xblat1d ..........................   Passed    0.02 sec
1>        Start  4: xblat1z
1>   4/94 Test  #4: xblat1z ..........................   Passed    0.02 sec
1>        Start  5: xblat2s
1>   5/94 Test  #5: xblat2s ..........................   Passed    0.06 sec
1>        Start  6: xblat2c
1>   6/94 Test  #6: xblat2c ..........................   Passed    0.07 sec
1>        Start  7: xblat2d
1>   7/94 Test  #7: xblat2d ..........................   Passed    0.07 sec
1>        Start  8: xblat2z
1>   8/94 Test  #8: xblat2z ..........................   Passed    0.10 sec
1>        Start  9: xblat3s
1>   9/94 Test  #9: xblat3s ..........................   Passed    0.07 sec
1>        Start 10: xblat3c
1>  10/94 Test #10: xblat3c ..........................   Passed    0.12 sec
1>        Start 11: xblat3d
1>  11/94 Test #11: xblat3d ..........................   Passed    0.05 sec
1>        Start 12: xblat3z
1>  12/94 Test #12: xblat3z ..........................   Passed    0.07 sec
1>        Start 13: xlintsts_stest_in
1>  13/94 Test #13: xlintsts_stest_in ................   Passed    2.43 sec
1>        Start 14: xlintstc_ctest_in
1>  14/94 Test #14: xlintstc_ctest_in ................   Passed    7.79 sec
1>        Start 15: xlintstd_dtest_in
1>  15/94 Test #15: xlintstd_dtest_in ................   Passed    2.24 sec
1>        Start 16: xlintstz_ztest_in
1>  16/94 Test #16: xlintstz_ztest_in ................   Passed    7.56 sec
1>        Start 17: xlintstds_dstest_in
1>  17/94 Test #17: xlintstds_dstest_in ..............   Passed    0.59 sec
1>        Start 18: xlintstzc_zctest_in
1>  18/94 Test #18: xlintstzc_zctest_in ..............   Passed    1.64 sec
1>        Start 19: xlintstrfs_stest_rfp_in
1>  19/94 Test #19: xlintstrfs_stest_rfp_in ..........   Passed    0.22 sec
1>        Start 20: xlintstrfd_dtest_rfp_in
1>  20/94 Test #20: xlintstrfd_dtest_rfp_in ..........   Passed    0.21 sec
1>        Start 21: xlintstrfc_ctest_rfp_in
1>  21/94 Test #21: xlintstrfc_ctest_rfp_in ..........   Passed    0.83 sec
1>        Start 22: xlintstrfz_ztest_rfp_in
1>  22/94 Test #22: xlintstrfz_ztest_rfp_in ..........   Passed    0.83 sec
1>        Start 23: xeigtsts_nep_in
1>  23/94 Test #23: xeigtsts_nep_in ..................   Passed    0.10 sec
1>        Start 24: xeigtsts_sep_in
1>  24/94 Test #24: xeigtsts_sep_in ..................   Passed    0.40 sec
1>        Start 25: xeigtsts_svd_in
1>  25/94 Test #25: xeigtsts_svd_in ..................   Passed    2.57 sec
1>        Start 26: xeigtsts_sec_in
1>  26/94 Test #26: xeigtsts_sec_in ..................   Passed    0.27 sec
1>        Start 27: xeigtsts_sed_in
1>  27/94 Test #27: xeigtsts_sed_in ..................   Passed    0.12 sec
1>        Start 28: xeigtsts_sgg_in
1>  28/94 Test #28: xeigtsts_sgg_in ..................   Passed    0.09 sec
1>        Start 29: xeigtsts_sgd_in
1>  29/94 Test #29: xeigtsts_sgd_in ..................   Passed    0.13 sec
1>        Start 30: xeigtsts_ssb_in
1>  30/94 Test #30: xeigtsts_ssb_in ..................   Passed    0.02 sec
1>        Start 31: xeigtsts_ssg_in
1>  31/94 Test #31: xeigtsts_ssg_in ..................   Passed    0.39 sec
1>        Start 32: xeigtsts_sbal_in
1>  32/94 Test #32: xeigtsts_sbal_in .................   Passed    0.02 sec
1>        Start 33: xeigtsts_sbak_in
1>  33/94 Test #33: xeigtsts_sbak_in .................   Passed    0.02 sec
1>        Start 34: xeigtsts_sgbal_in
1>  34/94 Test #34: xeigtsts_sgbal_in ................   Passed    0.02 sec
1>        Start 35: xeigtsts_sgbak_in
1>  35/94 Test #35: xeigtsts_sgbak_in ................   Passed    0.02 sec
1>        Start 36: xeigtsts_sbb_in
1>  36/94 Test #36: xeigtsts_sbb_in ..................   Passed    0.03 sec
1>        Start 37: xeigtsts_glm_in
1>  37/94 Test #37: xeigtsts_glm_in ..................   Passed    0.02 sec
1>        Start 38: xeigtsts_gqr_in
1>  38/94 Test #38: xeigtsts_gqr_in ..................   Passed    0.03 sec
1>        Start 39: xeigtsts_gsv_in
1>  39/94 Test #39: xeigtsts_gsv_in ..................   Passed    0.03 sec
1>        Start 40: xeigtsts_lse_in
1>  40/94 Test #40: xeigtsts_lse_in ..................   Passed    0.02 sec
1>        Start 41: xeigtstc_nep_in
1>  41/94 Test #41: xeigtstc_nep_in ..................   Passed    0.17 sec
1>        Start 42: xeigtstc_sep_in
1>  42/94 Test #42: xeigtstc_sep_in ..................   Passed    0.62 sec
1>        Start 43: xeigtstc_svd_in
1>  43/94 Test #43: xeigtstc_svd_in ..................   Passed    4.62 sec
1>        Start 44: xeigtstc_cec_in
1>  44/94 Test #44: xeigtstc_cec_in ..................   Passed    0.05 sec
1>        Start 45: xeigtstc_ced_in
1>  45/94 Test #45: xeigtstc_ced_in ..................   Passed    0.22 sec
1>        Start 46: xeigtstc_cgg_in
1>  46/94 Test #46: xeigtstc_cgg_in ..................   Passed    0.20 sec
1>        Start 47: xeigtstc_cgd_in
1>  47/94 Test #47: xeigtstc_cgd_in ..................   Passed    0.19 sec
1>        Start 48: xeigtstc_csb_in
1>  48/94 Test #48: xeigtstc_csb_in ..................   Passed    0.03 sec
1>        Start 49: xeigtstc_csg_in
1>  49/94 Test #49: xeigtstc_csg_in ..................   Passed    0.67 sec
1>        Start 50: xeigtstc_cbal_in
1>  50/94 Test #50: xeigtstc_cbal_in .................   Passed    0.04 sec
1>        Start 51: xeigtstc_cbak_in
1>  51/94 Test #51: xeigtstc_cbak_in .................   Passed    0.03 sec
1>        Start 52: xeigtstc_cgbal_in
1>  52/94 Test #52: xeigtstc_cgbal_in ................   Passed    0.02 sec
1>        Start 53: xeigtstc_cgbak_in
1>  53/94 Test #53: xeigtstc_cgbak_in ................   Passed    0.02 sec
1>        Start 54: xeigtstc_cbb_in
1>  54/94 Test #54: xeigtstc_cbb_in ..................   Passed    0.05 sec
1>        Start 55: xeigtstc_glm_in
1>  55/94 Test #55: xeigtstc_glm_in ..................   Passed    0.03 sec
1>        Start 56: xeigtstc_gqr_in
1>  56/94 Test #56: xeigtstc_gqr_in ..................   Passed    0.06 sec
1>        Start 57: xeigtstc_gsv_in
1>  57/94 Test #57: xeigtstc_gsv_in ..................   Passed    0.04 sec
1>        Start 58: xeigtstc_lse_in
1>  58/94 Test #58: xeigtstc_lse_in ..................   Passed    0.03 sec
1>        Start 59: xeigtstd_nep_in
1>  59/94 Test #59: xeigtstd_nep_in ..................   Passed    0.09 sec
1>        Start 60: xeigtstd_sep_in
1>  60/94 Test #60: xeigtstd_sep_in ..................   Passed    0.50 sec
1>        Start 61: xeigtstd_svd_in
1>  61/94 Test #61: xeigtstd_svd_in ..................   Passed    3.00 sec
1>        Start 62: xeigtstd_dec_in
1>  62/94 Test #62: xeigtstd_dec_in ..................   Passed    0.20 sec
1>        Start 63: xeigtstd_ded_in
1>  63/94 Test #63: xeigtstd_ded_in ..................   Passed    0.13 sec
1>        Start 64: xeigtstd_dgg_in
1>  64/94 Test #64: xeigtstd_dgg_in ..................   Passed    0.10 sec
1>        Start 65: xeigtstd_dgd_in
1>  65/94 Test #65: xeigtstd_dgd_in ..................   Passed    0.14 sec
1>        Start 66: xeigtstd_dsb_in
1>  66/94 Test #66: xeigtstd_dsb_in ..................   Passed    0.02 sec
1>        Start 67: xeigtstd_dsg_in
1>  67/94 Test #67: xeigtstd_dsg_in ..................   Passed    0.50 sec
1>        Start 68: xeigtstd_dbal_in
1>  68/94 Test #68: xeigtstd_dbal_in .................   Passed    0.02 sec
1>        Start 69: xeigtstd_dbak_in
1>  69/94 Test #69: xeigtstd_dbak_in .................   Passed    0.02 sec
1>        Start 70: xeigtstd_dgbal_in
1>  70/94 Test #70: xeigtstd_dgbal_in ................   Passed    0.02 sec
1>        Start 71: xeigtstd_dgbak_in
1>  71/94 Test #71: xeigtstd_dgbak_in ................   Passed    0.02 sec
1>        Start 72: xeigtstd_dbb_in
1>  72/94 Test #72: xeigtstd_dbb_in ..................   Passed    0.03 sec
1>        Start 73: xeigtstd_glm_in
1>  73/94 Test #73: xeigtstd_glm_in ..................   Passed    0.03 sec
1>        Start 74: xeigtstd_gqr_in
1>  74/94 Test #74: xeigtstd_gqr_in ..................   Passed    0.03 sec
1>        Start 75: xeigtstd_gsv_in
1>  75/94 Test #75: xeigtstd_gsv_in ..................   Passed    0.03 sec
1>        Start 76: xeigtstd_lse_in
1>  76/94 Test #76: xeigtstd_lse_in ..................   Passed    0.02 sec
1>        Start 77: xeigtstz_nep_in
1>  77/94 Test #77: xeigtstz_nep_in ..................***Failed   42.68 sec
1>        Start 78: xeigtstz_sep_in
1>  78/94 Test #78: xeigtstz_sep_in ..................***Failed    9.85 sec
1>        Start 79: xeigtstz_svd_in
1>  79/94 Test #79: xeigtstz_svd_in ..................***Failed    7.24 sec
1>        Start 80: xeigtstz_zec_in
1>  80/94 Test #80: xeigtstz_zec_in ..................***Failed    9.30 sec
1>        Start 81: xeigtstz_zed_in
1>  81/94 Test #81: xeigtstz_zed_in ..................***Failed    6.65 sec
1>        Start 82: xeigtstz_zgg_in
1>  82/94 Test #82: xeigtstz_zgg_in ..................***Failed    7.73 sec
1>        Start 83: xeigtstz_zgd_in
1>  83/94 Test #83: xeigtstz_zgd_in ..................***Failed    7.55 sec
1>        Start 84: xeigtstz_zsb_in
1>  84/94 Test #84: xeigtstz_zsb_in ..................***Failed    6.85 sec
1>        Start 85: xeigtstz_zsg_in
1>  85/94 Test #85: xeigtstz_zsg_in ..................***Failed    7.41 sec
1>        Start 86: xeigtstz_zbal_in
1>  86/94 Test #86: xeigtstz_zbal_in .................***Failed    7.36 sec
1>        Start 87: xeigtstz_zbak_in
1>  87/94 Test #87: xeigtstz_zbak_in .................***Failed    6.84 sec
1>        Start 88: xeigtstz_zgbal_in
1>  88/94 Test #88: xeigtstz_zgbal_in ................***Failed    7.31 sec
1>        Start 89: xeigtstz_zgbak_in
1>  89/94 Test #89: xeigtstz_zgbak_in ................***Failed    6.79 sec
1>        Start 90: xeigtstz_zbb_in
1>  90/94 Test #90: xeigtstz_zbb_in ..................***Failed    6.81 sec
1>        Start 91: xeigtstz_glm_in
1>  91/94 Test #91: xeigtstz_glm_in ..................***Failed    7.59 sec
1>        Start 92: xeigtstz_gqr_in
1>  92/94 Test #92: xeigtstz_gqr_in ..................***Failed    7.38 sec
1>        Start 93: xeigtstz_gsv_in
1>  93/94 Test #93: xeigtstz_gsv_in ..................***Failed    7.14 sec
1>        Start 94: xeigtstz_lse_in
1>  94/94 Test #94: xeigtstz_lse_in ..................***Failed    7.64 sec
1>  
1>  81% tests passed, 18 tests failed out of 94
1>  
1>  Total Test time (real) = 211.82 sec
1>  
1>  The following tests FAILED:
1>       77 - xeigtstz_nep_in (Failed)
1>       78 - xeigtstz_sep_in (Failed)
1>       79 - xeigtstz_svd_in (Failed)
1>       80 - xeigtstz_zec_in (Failed)
1>       81 - xeigtstz_zed_in (Failed)
1>       82 - xeigtstz_zgg_in (Failed)
1>       83 - xeigtstz_zgd_in (Failed)
1>       84 - xeigtstz_zsb_in (Failed)
1>       85 - xeigtstz_zsg_in (Failed)
1>       86 - xeigtstz_zbal_in (Failed)
1>       87 - xeigtstz_zbak_in (Failed)
1>       88 - xeigtstz_zgbal_in (Failed)
1>       89 - xeigtstz_zgbak_in (Failed)
1>       90 - xeigtstz_zbb_in (Failed)
1>       91 - xeigtstz_glm_in (Failed)
1>       92 - xeigtstz_gqr_in (Failed)
1>       93 - xeigtstz_gsv_in (Failed)
1>       94 - xeigtstz_lse_in (Failed)
1>  Errors while running CTest

重建该项目并不能解决问题。dumpbin 说 PE 头是有效的。

当我在调试器中运行时,我肯定会得到大量的调试输出。堆栈溢出。我必须启用符号才能准确查看发生了什么。但首先,让我们看看 Debug 构建是否以同样的方式失败。

是的,它确实。测试用例被严重破坏,它试图使用数兆字节的自动变量,这些变量不适合堆栈。这是罪魁祸首:

doublecomplex a[243936] /* was [17424][14] */, b[87120] /* was [17424]
    [5] */, c__[160000] /* was [400][400] */;

该项目已经调整为使用 10MB 的堆栈而不是默认的 1MB。在 x64 构建中,这仍然不够。将链接器选项更改为 后/STACK:40000000,崩溃就消失了。(这不是一个好的解决方案,最初扩展到 10MB 也不是一个好主意。不要使用大小可笑的自动变量,我们有动态和静态的生命周期。)

更改该测试的链接器选项后:

1>  100% tests passed, 0 tests failed out of 94
1>  
1>  Total Test time (real) =  48.98 sec
于 2012-07-12T04:03:31.360 回答