gpt4 book ai didi

string - CMake/CTest add_test 命令将额外的引号附加到我的命令参数中

转载 作者:行者123 更新时间:2023-12-02 02:25:45 26 4
gpt4 key购买 nike

在 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}")

但随后它说找不到我的可执行文件。

最佳答案

尝试:

set (test_parameters -np ${no_mpi_proc} "./${name}")
add_test(NAME ${name} COMMAND "mpirun" ${test_parameters})

关于string - CMake/CTest add_test 命令将额外的引号附加到我的命令参数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19278510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com