2
在CMake的我有一個函數:的CMake/CTEST add_test命令追加額外的引號,以我的命令參數
function(add_mpi_test name no_mpi_proc)
include_directories(...)
add_executable(...)
add_dependencies(...)
target_link_libraries(...)
# The important lines:
set(test_parameters " -np ${no_mpi_proc} ./${name}")
add_test(NAME ${name} COMMAND "mpirun" ${test_parameters})
endfunction(add_mpi_test)
,我使用這樣的創建測試:
add_mpi_test(mpi 4)
但是當我運行CTEST我得到以下錯誤:
2: Test command: /usr/local/bin/mpirun " -np 4 ./mpi "
2: Test timeout computed to be: 9.99988e+06
2: [proxy:0:[email protected]] HYDU_create_process (./utils/launch/launch.c:75): execvp error on file -np 4 ./mpi (No such file or directory)
但是如果我在目錄中運行
/usr/local/bin/mpirun -np 4 ./mpi
不帶引號一切正常,如果我用引號
/usr/local/bin/mpirun " -np 4 ./mpi "
運行它,我得到完全相同的錯誤。
有沒有辦法刪除這些引號?
我有什麼在該行改變
add_test(NAME $ {名} COMMAND 「的mpirun」 $ {test_parameters})
獲得:
2: Test command: /usr/local/bin/mpirun -np 4 ./mpi
不含引號?
我已經試過
add_test(NAME ${name} COMMAND "mpirun ${test_parameters}")
但隨後說,在無法找到我的可執行文件。
謝謝!這工作!問題在哪裏? – gnzlbg
參數'test_parameters'列表需要被構建爲CMake列表而不是CMake字符串。 – sakra