c - 我如何不在终端中输入 gcc 和 MacOSX sdk 的完整路径?

标签 c macos unix gcc terminal

每次我想在终端中编译 C 文件时,我都必须输入 gcc 别名和 MacOSX SDK 的完整路径。例如,要正常运行 main.c,我会输入

$ cd /Users/Will/Desktop/C 
$ /Users/Will/Desktop/C/gcc -isysroot /Developer/SDKs/MacOSX10.6.sdk main.c

但是,我的目录在 Desktop/C 文件夹中,所以我不必输入完整路径,但是当我输入

$ cd /Users/Will/Desktop/C
$ gcc main.c

我明白了

-bash: gcc: command not found

此外,它似乎应该已经知道在/Developer/SDKs/MacOSX10.6.sdk 中查找 stdio.h 等头文件,但是当我键入

$ /Users/Will/Desktop/C/gcc main.c

我得到了类似的东西

main.c:1:19: error: stdio.h: No such file or directory

我该如何解决这个问题?

最佳答案

如果它在您当前的工作目录中,请使用 ./gcc

否则,将您的 $PATH 指向该目录,您就可以在任何地方以 gcc 的形式使用它。

至于不必每次都输入 SDK 路径,您可以编写一个简单的 bash 脚本并将其放在 $HOME/bin 中(假设您已经添加了 gcc 到您的 $PATH,否则添加完整路径)...

#!/bin/sh
gcc -isysroot /Developer/SDKs/MacOSX10.6.sdk "$@"

确保使用 chmod +x gcc_wrapper 赋予它执行权限。然后你应该能够从任何地方使用它,传递给它的任何参数都将被添加到最后。

关于c - 我如何不在终端中输入 gcc 和 MacOSX sdk 的完整路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14169632/

相关文章:

c# - 在 Mac 上部署没有框架的 Mono 应用程序

linux - 打印unix/linux中文件最多的目录

linux - 使用 shell 脚本将两个命令的输出合并到一个表中

c - 如何使字符串单词明智(以便以后我可以反转它们)存储在数组中?在 C

C 程序读取和存储字符串

c - 将数组中的十六进制转换为ascii,以便在C语言中进行比较

c++ - 在不区分大小写的文件系统上模拟区分大小写

c - 链接库头时对...的 undefined reference

c - 在 macOS 上从 dev_t 获取设备文件系统路径

objective-c - 了解 native Mac 应用程序应如何组织