我已经安装了四个GNU软件包(GNUstep MSYS System,GNUstep核心第二,GNUstep Devel,最后是Cairo Backend)到我的C盘(我在Windows上使用它)。
我创建了目录E:/ MyProject / ObjectiveC,我在其中编写了Helloworld.m程序并将其保存。
我使用命令“$ gcc'gnustep-config --objc-flags'helloworld.m -o helloworld'gnustep-config --base-libs'来编译程序,但是我收到以下错误(由于声誉不到10,因此无法提供屏幕截图)
a)gcc.exe:错误:gnustep-config --objc-flags:没有这样的文件或目录
b)gcc.exe:错误:gnustep-config --base-libs:没有这样的文件或目录
我有什么遗失的吗?我是否必须在objectivec目录中创建一个makefile?
答案 0 :(得分:1)
我认为问题是你使用了普通引号而不是后引号。在标准的美国英语QWERTY键盘上,反引号位于数字1键的左侧。
正常引号告诉shell不要解释特殊字符,而space是一个特殊字符。所以shell将gnustep-config --objc-flags
传递给gcc.exe
作为包含空格的单个命令行参数。
返回引号告诉shell将引号之间的文本作为命令运行,并通过命令的输出替换引号和命令。因此,在这种情况下,如果使用反引号,shell将作为命令运行gnustep-config --objc-flags
。据推测,config命令打印出编译GNUstep Objective-C源代码所需的编译器标志。然后shell将这些标志放在gcc
命令行上,替换引用的命令。