Pop!_OS终端C程序编译后无输出,求Linux终端运行C程序方法
在Linux终端中正确运行C程序的方法
问题原因分析
你直接执行test时,实际运行的是Linux系统内置的test命令(用于条件判断的工具),而非你自己编译的程序。因为系统会优先在PATH环境变量指定的目录中查找命令,当前目录默认不在PATH范围内,所以找不到你编译的test可执行文件。系统内置test命令在无参数时会返回状态码1,这就是echo $?输出1的原因。
正确运行步骤
编译程序(你已完成此步骤)
使用gcc编译生成可执行文件:gcc test.c -o test运行自己编译的程序
必须指定当前目录路径,告诉终端去当前目录查找可执行文件:./test执行后你会看到预期输出:
Hi Hello World此时再执行
echo $?,会得到代码中定义的返回值2。
额外提示
- 若想直接通过文件名运行,可给程序起一个不与系统命令重名的名字,比如:
gcc test.c -o mytest mytest - 确保可执行文件有执行权限,编译后的文件默认具备该权限,若缺失可执行:
chmod +x test
内容的提问来源于stack exchange,提问作者Sasha
相关产品推荐
相关产品推荐

