【问题标题】:About the meaning of "./a" in gcc关于gcc中“./a”的含义
【发布时间】:2021-03-29 18:30:56
【问题描述】:

当我跑步时

$ gcc hello.c
$ ./a
Hello, World. 

我不知道./a 到底是什么意思。

这是什么?它代表什么?

如果你知道它的含义,我真的很感激你能分享。

【问题讨论】:

    标签: gcc output .a


    【解决方案1】:

    ./ 是使用类 Unix shell(如 bash)时的当前目录。GCC 生成的可执行文件的名称是 a.exe

    所以要运行生成的可执行文件,您需要指定到它的路径,在本例中为“当前目录”,即./,以及可执行文件的名称,即a.exe。由于在 Windows 上运行可执行文件时可以省略 .exe,而不是 ./a.exe,您可以使用 ./a 运行它。

    如果您要使用 Windows 命令行 shell(如 cmd.exe 或 PowerShell),您只需键入 a,因为当前目录(在这种情况下为 .\,Windows 使用 \ 而不是/ 用于目录分隔符)默认搜索可执行文件。 Unix shell 不需要,这就是为什么你需要./

    如果你想给生成的可执行文件一个不同的名字,例如hello.exe,你可以:

    gcc hello.c -o hello.exe
    

    然后你会运行它:

    ./hello
    

    或:

    ./hello.exe
    

    【讨论】:

      【解决方案2】:

      .a 是编译程序的标准/默认输出,当没有提供输出名称时。

      当你编译了C程序并且没有给输出文件命名时,gcc会自动将输出文件名设置为a

      当没有提供输出名称时,最后编译的 C 程序的文件名将被覆盖。

      这个标准在 Unix 和 Windows 中都是一样的。

      要设置输出程序的名称,请使用-o 参数,后跟输出名称sum_program

      gcc sum_program.c -o sum_program

      根据库的使用和其他链接器,可以添加额外的参数,如 -o 进行编译。

      【讨论】:

        猜你喜欢
        • 2023-03-17
        • 2018-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-26
        • 1970-01-01
        • 2014-05-25
        • 1970-01-01
        相关资源
        最近更新 更多