c++ - 为什么“./a.out”只运行最后编译的可执行程序而不运行以前的可执行程序?
问题描述
我已经学习了我的前两门 Java 课程,现在必须学习 C++ 中的数据结构。我正在尝试打开我编译的不同文件。
他们只是两个“你好,世界!” 文本略有不同的程序。
当我输入:
g++ HelloWorld.cpp
我通过在命令提示符中键入 ./a.out 来创建文件“a.out”。
现在我编译了第二个可执行程序 HelloWorldII.cpp,a.out 文件只运行该程序。
当我尝试运行 ./HelloWorld.cpp 时,我的权限被拒绝,所以我输入:
sudo chmod 744 /Users/username/HelloWorld
为了让我成为不起作用的文件夹的所有者,所以我输入了:
sudo chown -R "$garyjones:" users/username/HelloWorld
授予所有者(我)编辑/打开的权限,之后当我尝试运行 ./HelloWorld.cpp 时,终端开始尝试执行它,但即使使用 g++ HelloWorld.cpp 编译它们并运行它们,也会向我显示语法错误他们的 a.out 文件运行良好。
如果我在一个文件夹中有多个可执行文件,如何打开我想要的那个?
解决方案
当您编译和链接代码时,可执行文件默认命名a.out
- 您应该在链接中添加一个参数来命名它。
如果你不这样做,它们都将被命名a.out
,并且当然会相互覆盖 - 只能有一个具有该名称的文件。
推荐阅读
- python - 尝试在 Python/Django 中清理非常基本的 MySQL SELECT
- chef-infra - 覆盖包装说明书中的资源定义
- algorithm - 对共轭梯度方法的改进?
- sql - sql多对多关系,如何找到双打
- python - 在python中使用相同的分隔符分割字符串
- android - getDefaultSharedPreferences 上传递的上下文会影响结果吗?
- python - 在 sudo python3 中导入时包不可用
- design-patterns - 实现(IoT)设备 API 的设计模式
- c++ - C ++:无法将结构数组中的double与if函数中的另一个double进行比较
- regex - 不会取代所有出现