gpt4 book ai didi

编译一段C代码,然后检查输出是否为空并运行它

转载 作者:行者123 更新时间:2023-11-30 20:36:57 25 4
gpt4 key购买 nike

我有这个代码:

@ECHO off
set name=code
set command1="path/to/the/file"
set command2=gcc -o %name%.exe %name%.c
start cmd.exe /c %command1% & %command2%>temp
set msg =<temp
call :CheckEmpty "temp"
goto :eof
:CheckEmpty
if %~z1 == 0 (
%name%.exe
exit
)
echo temp
pause
goto :eof

它的作用是编译code.c,然后测试编译器的输出是否为空,以及是否运行code.exe。如果不是,则回显错误消息。

我就是无法让它工作。

我查看了“temp”文件,它是空的,尽管由于某种原因它仍然回显错误消息。 Batch 对我来说非常陌生,CheckEmpty 部分是从另一个 stackoverflow 问题复制的。

任何帮助将不胜感激!

最佳答案

我在Linux上,所以无法测试以下内容,

但是,我会这样写。

@ECHO off
PUSHD
set name=code

cd path/to/the/file

gcc -c -ggdb -Wall -Wextra -pedantic -std=c99 -o %name%.o name%.c -I. 2>&1 temp
if errorlevel 1 (goto error)

gcc -ggdb %name%.o -o %name%.exe 2>>&1 temp
if errorlevel 1 (goto error)

%name%.exe
goto end

:error
type temp | more
pause
:end
POPD

并命名这样一个文件:(也许)compileit.cmd

然后通过以下方式执行:

cmd.exe /c compileit.cmd

调用gcc时,还有很多其他参数无法使用。

参见:https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html了解详情

创建批处理文件时,还有很多其他功能。

参见:http://ss64.com/nt/set.html了解详情

关于编译一段C代码,然后检查输出是否为空并运行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34162329/

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