CMakeには関数があります:
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:0@localhost] 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 ${name} COMMAND "mpirun" ${test_parameters})
取得するため:
2: Test command: /usr/local/bin/mpirun -np 4 ./mpi
引用符なし?
私はもう試した
add_test(NAME ${name} COMMAND "mpirun ${test_parameters}")
しかし、実行可能ファイルが見つかりませんと表示されます。