我已经学习了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
授予所有者(me)编辑/打开权限,此后,当我尝试运行./HelloWorld.cpp时,终端开始尝试执行它,但是即使使用g ++ HelloWorld.cpp进行编译,终端也会显示语法错误。并使用其a.out文件运行它们效果很好。
如果一个文件夹中有多个可执行文件,该如何打开我想要的文件?
答案 0 :(得分:1)
编译和链接代码时,默认情况下,可执行文件名为a.out
-您应该在链接中添加一个参数来命名它。
如果您不这样做,它们都将被命名为a.out
,并且当然会相互覆盖-只能有一个具有该名称的文件。
答案 1 :(得分:0)
尝试执行纯ascii文本文件对您来说很奇怪。您不了解执行模式的含义。您不熟悉g ++。似乎您不知道编译器如何从源文件生成可执行文件的过程。
这是我的建议。
这是临时解决方案。
g++ <source file> -o <executable filename>
示例:
## if you don't specific a name for the binary file,
## it will generate a.out and delete the exiting a.out firstly
g++ HelloWorld.cpp -o HelloWorld
## and then you can execute it
./HelloWorld