我是Windows下的C ++编程新手。我正在尝试使用cuobjdump
函数在C ++代码中执行命令system()
:
system("C:\\program files\\nvidia gpu computing...\\cuobjdump.exe --dump-cubin C:\\..\\input.exe");
输出:
Usage : cuobjdump [options] <file>
接下来是cuobjdump的选项列表。
当我执行这个程序时,我总是得到命令行中显示的cuobjdump帮助选项。就像系统调用不解析文件名一样。我究竟做错了什么?使用createprocess时,我得到相同的结果。选项--dump-cubin
给出了错误,就像我输入错误一样。
答案 0 :(得分:11)
尝试使用(即使用"
围绕cuobjdump.exe路径,在C ++中正确转义为\"
):
system("\"C:\\program files\\nvidia gpu computing...\\cuobjdump.exe\" --dump-cubin C:\\..\\input.exe");
答案 1 :(得分:5)
system("cuobjdump --dump-cubin path\filename.exe");
编译器将\f
解释为字符串转义序列,试试path\\filename.exe
答案 2 :(得分:4)
最明显的是,\
是C / C ++字符串中的转义字符,因此如果要按字面意思使用它,则必须加倍。
system("cuobjdump --dump-cubin path\\filename.exe");
答案 3 :(得分:3)
假设path
是正确的,您必须在字符串中使用双\\
来表示单个\
。
答案 4 :(得分:3)
由于您使用的是Windows,我建议您使用CreateProcess或ShellExecute / ShellExecuteEx。 system
和ShellExecute
最终只会调用CreateProcess
。