使用CMake 3.9,list()子命令存在一些奇怪的问题。 以下代码段
foreach(__lib ${_blas})
message(STATUS "DEBUG: before ${__lib}")
endforeach()
message(STATUS "DEBUG: before ${_blas}")
list(LENGTH _blas len)
message("_blas has length ${len}")
给出以下输出:
-调试:-Wl之前-启动组
-调试:/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之前,-结束组
-调试:-lpthread之前
-调试:-lm之前
-调试:-Wl之前-启动组; /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/lib-intel64/ink。 ,-end-group; -lpthread; -lm
_blas的长度为0
由于某些原因,foreach()
会将_blas识别为列表,而list()
子命令则不能。到底是怎么回事?
答案 0 :(得分:0)
弄清楚了:_blas是一个宏参数,因此不能在列表命令中使用。