Mac系统下C++程序运行提示Permission Denied的解决方法咨询
解决运行C++程序时的"Permission denied"问题
首先看你遇到的问题,根源出在编译命令的使用上,咱们一步步拆解:
问题分析
你执行的命令是:
gcc -Wall -c test.cpp -o test ./test
这里有两个关键问题:
-c参数的误用:-c是告诉编译器只做编译阶段,生成的是目标文件(object file),而不是可直接运行的可执行程序。这种文件本质是中间编译产物,没有执行权限,也不能直接运行,所以系统会提示"Permission denied"。- 命令合并问题:你把编译命令和运行命令写在一行却没有用分号分隔,不过这不是核心问题,核心还是第一个点。
正确的解决步骤
1. 正确编译C++程序
因为你写的是C代码,推荐用g++(C专属编译器)来编译,它会自动链接C++标准库:
g++ -Wall test.cpp -o test
如果坚持用gcc,需要手动链接C++标准库,命令是:
gcc -Wall test.cpp -o test -lstdc++
这两个命令都会生成一个名为test的可执行程序,默认会带有执行权限。
2. (可选)修复文件权限
如果因为之前的错误操作导致test文件权限异常,可以手动添加执行权限:
chmod +x test
3. 运行程序
现在就可以正常运行了:
./test
你的程序逻辑是定义变量a然后返回0,运行后不会有输出,但也不会再出现权限错误啦。
内容的提问来源于stack exchange,提问作者Arjun Gupta
相关产品推荐
相关产品推荐

