【问题标题】:cmake list subcommand do not recognize ;-separated listcmake list 子命令无法识别 ;-分隔列表
【发布时间】:2018-12-02 10:57:21
【问题描述】:

使用 CMake 3.9,我对 list() 子命令有一些奇怪的问题。 以下代码sn -p

foreach(__lib ${_blas})
    message(STATUS "DEBUG: before ${__lib}")
endforeach()
message(STATUS "DEBUG: before ${_blas}")
list(LENGTH _blas len)
message("_blas has length ${len}")

给出以下输出:

-- 调试:-Wl 之前,--start-group

-- 调试:在 /share/sw/licensed/intel/pstudio_xe_cluster-2015/composer_xe_2015.0.090/mkl/lib/intel64/libmkl_intel_lp64.a 之前

-- 调试:在 /share/sw/licensed/intel/pstudio_xe_cluster-2015/composer_xe_2015.0.090/mkl/lib/intel64/libmkl_sequential.a 之前

-- 调试:在 /share/sw/licensed/intel/pstudio_xe_cluster-2015/composer_xe_2015.0.090/mkl/lib/intel64/libmkl_core.a 之前

-- 调试:在 -Wl,--end-group 之前

-- 调试:-lpthread 之前

-- 调试:-lm 之前

-- 调试:-Wl 之前,--start-group;/share/sw/licensed/intel/pstudio_xe_cluster-2015/composer_xe_2015.0.090/mkl/lib/intel64/libmkl_intel_lp64.a;/share/sw/licensed /intel/pstudio_xe_cluster-2015/composer_xe_2015.0.090/mkl/lib/intel64/libmkl_sequential.a;/share/sw/licensed/intel/pstudio_xe_cluster-2015/composer_xe_2015.0.090/mkl/lib/intel64/libmkl_core.a;-Wl ,--end-group;-lpthread;-lm

_blas 的长度为 0

由于某种原因,foreach() 将 _blas 识别为列表,而 list() 子命令不识别。到底是怎么回事?

【问题讨论】:

    标签: cmake


    【解决方案1】:

    弄清楚了:_blas 是一个宏参数,因此不能在列表命令中使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 2014-06-15
      • 2020-09-25
      • 1970-01-01
      相关资源
      最近更新 更多